Я хотел бы создавать изображения PNG с глубиной 1 бит (2 цвета) или 2 бита (4 цвета) с библиотекой Libpng.
Кто нибудь знает как это сделать ? Я тестировал примеры, и все они работают с 8-битной глубиной цвета?
Я знаю png_set_IHDR, но в примере, который я тестирую, когда я изменяю параметр глубины в png_set_IHDR с 8 на 2 или 1, моя программа рисует один пиксель размером 2 или 4. Я думаю, это связано с распределением памяти, созданным с помощью функции png_malloc.
В примере я пытаюсь изменить (http://www.lemoda.net/c/write-png/), функция png_malloc выделяет все пиксели изображения размером uint8_t.
png_malloc (png_ptr, sizeof (uint8_t) * bitmap->width * pixel_size);
Можете ли вы сказать мне, как выделить 1-битные или 2-битные пиксели?
Спасибо, Jo2s
png_set_IHDR
с битовой глубиной 1 или 2. Что еще вам нужно? - person mmgp   schedule 15.02.2013