библиотека для рисования

Модератор: Модераторы разделов

zeron
Сообщения: 77
ОС: Linux

библиотека для рисования

Сообщение zeron »

Подскажите пожалуйста библиотеку на С, с помощью которой можно рисовать в окне точки в градациях серого, т.е. например есть массив элементы которого имеют значения от 0 до 255 и эти значения и будут яркостью точек.



Если узор созвездий подобен луку тугому,
А череда жизней душных - тетиве неразрывной.
То дух твой, наверное, подобен стреле,
Калёной в пламени тысячи Солнц.


Спасибо сказали:
FatZer
Сообщения: 33
ОС: Gentoo

Re: библиотека для рисования

Сообщение FatZer »

zeron писал(а): ↑
27.05.2012 05:55
Подскажите пожалуйста библиотеку на С, с помощью которой можно рисовать в окне точки в градациях серого, т.е. например есть массив элементы которого имеют значения от 0 до 255 и эти значения и будут яркостью точек.

а gtk чем не устроил?
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: библиотека для рисования

Сообщение Crazy »

OpenGL

Desipere in loco
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: библиотека для рисования

Сообщение watashiwa_daredeska »

zeron писал(а): ↑
27.05.2012 05:55
т.е. например есть массив элементы которого имеют значения от 0 до 255 и эти значения и будут яркостью точек.
Если ничего кроме этой, достаточно примитивной, задачи не требуется, то я знаю только один, достаточно примитивный, но очень простой в использовании, инструмент. Правда, он для C++, а не для C. CImg.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: библиотека для рисования

Сообщение drBatty »

zeron писал(а): ↑
27.05.2012 05:55
Подскажите пожалуйста библиотеку на С, с помощью которой можно рисовать в окне точки в градациях серого, т.е. например есть массив элементы которого имеют значения от 0 до 255 и эти значения и будут яркостью точек.

есть формат BMP, там всё примитивно: подряд идут числа, каждое число == одна точка (например в формате RGB, по 8 бит на цвет, четвертый байт не используется)

Если вы Ъ, то можете использовать http://ru.wikipedia.org/wiki/X_Pixmap (X умеет искароппки), такое вы можете обрабатывать любым текстовым редактором, и вставлять картинки в код простой копипастой.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

drBatty, ну так если уж совсем простоты хочется, можно вообще гнуплотом воспользоваться, безо всякого программирования.

А если хочется на сях, то удобнее-таки OpenGL использовать: формируем картинку, потом цепляем ее как текстуру на прямоугольник. Все элементарно. И крутить/изменять масштаб/перемещать легко. И не тормозит на больших рисунках (в отличие от всяких canvas и pixmap).

А вообще, конечно, для такой простой задачи вариантов - вагон и маленькая тележка.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: библиотека для рисования

Сообщение Crazy »

eddy писал(а): ↑
28.05.2012 16:24
А если хочется на сях, то удобнее-таки OpenGL использовать: формируем картинку, потом цепляем ее как текстуру на прямоугольник. Все элементарно.

Проще сразу нарисовать точками GL_POINTS.

Desipere in loco
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

Crazy писал(а): ↑
28.05.2012 16:32
Проще сразу нарисовать точками GL_POINTS.

Это если картинка маленькая. А если там 10000x10000?
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 870
Статус: Начлаб
ОС: Debian

Re: библиотека для рисования

Сообщение Janik »

drBatty писал(а): ↑
28.05.2012 14:07
есть формат BMP, там всё примитивно:

TGA как вариант.
А можно и на SDL сделать.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: библиотека для рисования

Сообщение drBatty »

eddy писал(а): ↑
28.05.2012 16:24
ну так если уж совсем простоты хочется, можно вообще гнуплотом воспользоваться, безо всякого программирования.

я имел ввиду случай с написанием программы, но самый простой. Предложенные варианты годны для генерации картинок без всяких либ. либа нужна только для вывода, но, AFAIK, в любом тулките такая функция есть.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

drBatty писал(а): ↑
29.05.2012 08:11
я имел ввиду случай с написанием программы, но самый простой

Как уже выше говорили, targa еще проще: не надо шапку расписывать.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: библиотека для рисования

Сообщение Crazy »

eddy писал(а): ↑
29.05.2012 00:17
Crazy писал(а): ↑
28.05.2012 16:32
Проще сразу нарисовать точками GL_POINTS.

Это если картинка маленькая. А если там 10000x10000?

И какой профит от картинки, когда OpenGL поддерживается аппаратно?

Desipere in loco
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

Crazy писал(а): ↑
29.05.2012 11:10
И какой профит от картинки, когда OpenGL поддерживается аппаратно?

Не понял вопроса.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 870
Статус: Начлаб
ОС: Debian

Re: библиотека для рисования

Сообщение Janik »

Скорее всего имелось ввиду: зачем загружать текстуру вмсто рисования отдельных точек?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

Janik писал(а): ↑
29.05.2012 11:21
зачем загружать текстуру вмсто рисования отдельных точек?

Затем, что это быстрей и проще. Особенно на больших размерах. И занимает намного меньше памяти.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
Yaros
Сообщения: 501
ОС: Debian Wheezy / Gentoo

Re: библиотека для рисования

Сообщение Yaros »

eddy писал(а): ↑
29.05.2012 11:48
Janik писал(а): ↑
29.05.2012 11:21
зачем загружать текстуру вмсто рисования отдельных точек?

Затем, что это быстрей и проще. Особенно на больших размерах. И занимает намного меньше памяти.

А можете объяснить? Просто мне казалось, что программно как раз легче точки (легче в плане памяти). Но я не спец, сразу говорю =)
=========
=Мой блог. =
=========
Gentoo-ниасилятар
Спасибо сказали:
Аватара пользователя
Crazy
Сообщения: 862
Статус: Адепт Дзен.
ОС: Mint, Win7.

Re: библиотека для рисования

Сообщение Crazy »

eddy писал(а): ↑
29.05.2012 11:48
Janik писал(а): ↑
29.05.2012 11:21
зачем загружать текстуру вмсто рисования отдельных точек?

Затем, что это быстрей и проще. Особенно на больших размерах. И занимает намного меньше памяти.

Приложи результат тестов где действительно быстрее.
А вот с простотой не проще, нужно знать как создать и нарисовать картинку, потом как сделать и загрузить текстурку, в то время как рисование по точкам это вызов в цикле glVertex и glColor.
А если не нравиться цикл, то можно использовать glVertexPointer, для вывода массива точек.

Desipere in loco
Спасибо сказали:
zeron
Сообщения: 77
ОС: Linux

Re: библиотека для рисования

Сообщение zeron »

спасибо за советы, в будущем посмотрю в сторону OpenGL, а пока рисую через SDL, в каждый канал цвета передаю одно и то же число, вот и получаю градации серого.



Если узор созвездий подобен луку тугому,
А череда жизней душных - тетиве неразрывной.
То дух твой, наверное, подобен стреле,
Калёной в пламени тысячи Солнц.


Спасибо сказали:
Аватара пользователя
Janik
Сообщения: 870
Статус: Начлаб
ОС: Debian

Re: библиотека для рисования

Сообщение Janik »

zeron писал(а): ↑
30.05.2012 17:36
в каждый канал цвета передаю одно и то же число, вот и получаю градации серого.

вариант попроще: использовать 8 бит на пиксель, загрузить палитру с градациями и просто записывать числа. Конечно, данный вариант будет помедленней работать в Xorg, так как идет преобразование 8 BPP -> 24 BPP (или какя там у Вас глубина цвета?).
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: библиотека для рисования

Сообщение eddy »

Crazy писал(а): ↑
29.05.2012 15:31
Приложи результат тестов где действительно быстрее.

Лень. Я это когда-то проверял, когда делал вывод на экран видео с веб-камеры + результат обработки этого видео. По точкам придется перебирать поочередно каждый пиксель, генерировать точку с нужными координатами и нужным цветом… Геморрой, в общем. И памяти больше занимает.

Crazy писал(а): ↑
29.05.2012 15:31
А вот с простотой не проще, нужно знать как создать и нарисовать картинку

Что может быть сложного в генерировании массива?
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали: