Доброго времени суток!
Рекомендую всем интересующимся программированием графики в консоли попробовать выложенную здесь библиотеку libbmp.
----------------назначение--------------------------
1. Библиотека предназначена для реализации графики посредством консольного программирования на языке С++.
Она будет интересна начинающим программистам и всем тем, кому потребуется создать несложные (и сложные)
рисунки или чертежи (например графики функций), при этом не используя оконных сред программирования.
2. С другой стороны, средства библиотеки могут быть использованы для вполне серьёзного создания битовых образов,
при этом простым и прозрачным для понимания методом.
Преимущество перед настоящей консолью: рисунки можно большие делать- следовательно с хорошим качеством. Ну и сохранённый рисунок легко вывести на принтер и тд......
---------------------------------------------------------
Вкратце:
Язык: С++.
Используя просто g++ и эту библиотеку можно рисовать в оперативку и сохранять рисунки на винт в формате bmp.
Рисует простые фигуры: пиксель, линию,окружн. и тд.
Две возможности управления цветом: 16 цветов и 16 млн- т. е. 24-битный цвет.
Распакуйте архив libbmp.tar.gz в любую удобную папку и прочитайте небольшую(4стр.) инструкцию к библиотеке.
Исходники в архиве- они очень простые.Кто хочет- изменит или дополнит под свои нужды. (можно заюзать и под винды)
Ставится в пол пинка.
(Кто помнит graf.pas -поймёт меня)
Буду рад выслушать все впечатления, а также отвечу на вопросы, если таковые будут.
Автор.
обновил 11 дек 09 г. баги пофиксены = )
(для скачивания нужна регистрация на форуме- она очень простая.)
Псевдо- консольная графика C++. Библиотека libbmp. (Рисование в файл bmp вместо консоли удобнее.)
Модератор: Модераторы разделов
Re: Псевдо- консольная графика C++. Библиотека libbmp.
Когда то я тоже пробовал порисовать в bmp-файл, но столкнулся с такими граблями- нужно правильно создать начало файла, чтоб система потом могла правильно с ним работать. Здесь этот вопрос то решен- ось распознает созданные файлы,- но как сделано- коментов нет(хотя это уже конечно к внутреннему устройству функций относится.)
А так ниче- полезная штука, пользоваться просто.
Афтору- респект.
ЗЫ в мане очепятка : в коментах к примеру проги в конце надо Test.bmp а не ris.bmp
А так ниче- полезная штука, пользоваться просто.
Афтору- респект.
ЗЫ в мане очепятка : в коментах к примеру проги в конце надо Test.bmp а не ris.bmp
Re: Псевдо- консольная графика C++. Библиотека libbmp.
уже fixed.
--
Формирование шапки файла bmp под созданное изображение происходит при записи на диск. Это в функции rec().
Если ее рассмотреть - там видно что делается- она по сути линейная.
Но всё это не нужно для использования библиотеки- это всё внутри само обрабатывается.
Спасибо за респект.
Debian Squeeze.
Re: Псевдо- консольная графика C++. Библиотека libbmp.
Добрый человек заметил ошибку доступа к простому цвету в функции setcolor() внутри библиотеки.
(байты стояли в обратном порядке)
Fixed.
Выложил по-новой.
-----------------------------
Гуголь нашел ещё библиотеку libbmp, да не одну. Но они все другие, сделаны по-другому, и видимо, цели использования тоже отличаются. Моя самая маленькая и простая= как в использовании, так и в дописании под собственные нужды пользователя-программиста.
(Имхо, те другие не так уж и распространены(в обычных дебиановских репах их нет), так что конфликт маловероятен, и также по той причине, что две упомянутых библиотеки имхо ни кчему.)
-----------------------------
Было несколько скачиваний, кто еще заметил баги- прошу, пожалуйста, пишите, хоть сюда, хоть в личку.
Список исправленных багов:
1.В мане в коментах к примеру проги был не правильно назван обьект.
2.Внутри библ. в функции setcolor() неправильный порядок байтов приводил при простом доступе к цвету к неправильному отображению цвета.
Надеюсь, конечно, что на этот раз с багами покончено.
(байты стояли в обратном порядке)
Fixed.
Выложил по-новой.
-----------------------------
Гуголь нашел ещё библиотеку libbmp, да не одну. Но они все другие, сделаны по-другому, и видимо, цели использования тоже отличаются. Моя самая маленькая и простая= как в использовании, так и в дописании под собственные нужды пользователя-программиста.
(Имхо, те другие не так уж и распространены(в обычных дебиановских репах их нет), так что конфликт маловероятен, и также по той причине, что две упомянутых библиотеки имхо ни кчему.)
-----------------------------
Было несколько скачиваний, кто еще заметил баги- прошу, пожалуйста, пишите, хоть сюда, хоть в личку.
Список исправленных багов:
1.В мане в коментах к примеру проги был не правильно назван обьект.
2.Внутри библ. в функции setcolor() неправильный порядок байтов приводил при простом доступе к цвету к неправильному отображению цвета.
Надеюсь, конечно, что на этот раз с багами покончено.
Debian Squeeze.
- Portnov
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
- Контактная информация:
Re: Псевдо- консольная графика C++. Библиотека libbmp.
А поехали-ка в проекты.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Re: Псевдо- консольная графика C++. Библиотека libbmp.
В проекты логичнее, в смысле не по степени законченности, а по смыслу работы.
Да, байты цвета, в функции setcolor() стояли задом наперед , я сам поправил, а то вместо красного напрмер, синим рисовало . Но это при 16цветовом обращении к цвету, а при 16,7 млн- не влияло. Счас правильно цвет ставится.
Re: Псевдо- консольная графика C++. Библиотека libbmp.
Здравствуйте!
По идее человека, представившегося как Mantrakk, в библиотеку было внесено изменение:
название создаваемого рисунка (и его путь, если не по дефолту) прописывается теперь в функции rec(), то есть по завершению работы, а не при создании объекта.
Кроме того, в инструкцию добавлены коменты для пользователей Windows.
Текущую версию (ver 1.2) выкладываю:
По идее человека, представившегося как Mantrakk, в библиотеку было внесено изменение:
название создаваемого рисунка (и его путь, если не по дефолту) прописывается теперь в функции rec(), то есть по завершению работы, а не при создании объекта.
Кроме того, в инструкцию добавлены коменты для пользователей Windows.
Текущую версию (ver 1.2) выкладываю:
Debian Squeeze.
Re: Псевдо- консольная графика C++. Библиотека libbmp.
Отличная либа! На винде работает без использования мерзкого WinAPI. Продолжаете разработку, проект стоящий. Есть предложение, например сделать поддержку закрашенных многоугольников, т.е. что-то типа этого: void
или этогоbmp::drawPolygon(int *x, int *y, int r, int g, int b);
struct Point { int x, y; }; struct Color { int r, g, b; }; bmp::drawPolygon(Point *p, Color *c);
Re: Псевдо- консольная графика C++. Библиотека libbmp.
ass писал(а): ↑31.07.2010 07:42Отличная либа! На винде работает без использования мерзкого WinAPI. Продолжаете разработку, проект стоящий. Есть предложение, например сделать поддержку закрашенных многоугольников, т.е. что-то типа этого: voidили этогоbmp::drawPolygon(int *x, int *y, int r, int g, int b);struct Point { int x, y; }; struct Color { int r, g, b; }; bmp::drawPolygon(Point *p, Color *c);
Здравствуйте.
Я долго думал над вашим сообщением. В итоге, мысли разделились на две группы.
1. Спасибо на добром слове. Библиотека не претендует на развернутую многофункциональность. Напротив, в ее основе лежит идея о максимальной простоте. Поскольку она ориентирована на начинающих программистов. (которые, если захотят, могут изменить ее по своему усмотрению).
Да, действительно, можно было бы добавить функции, рисующие многоугольники, причем, наиболее красиво это можно сделать, как мне кажется, применяя функции с переменным числом аргуметов (соответсвенно от количеств пар координат вершин рисовался бы соответствующий многоугольник).
В данном случае передачу целочисленных аргументов по указателю, как вы предлагаете не вижу целесообразной. Это только усложнит простую вещь.
2. Ваш ник не позволяет мне обращаться к вам с его использованием. Возможно целью вашего сообщения было нечто не очень хорошее. И, да, я параноик. Если я чего-то себе тут напридумывал- не берите в голову.
Debian Squeeze.