Я пытаюсь создать и написать индексированное изображение PNG на C ++ или C с использованием библиотеки, переносимой на IOS и Android, поэтому я посмотрел на png ++, opencv и libpng. Я пытался использовать png ++, но не смог правильно создать индексные изображения. Я не смог разобраться в индексированных изображениях libpng и не нашел пример. opencv, похоже, не обрабатывает индексированные изображения png. png ++ кажется более простым в использовании, но в документации не указывается, как устанавливать свои собственные значения для проиндексированных изображений, просто в этом разделе помещается «...» (см. ниже). Любая помощь будет оценена.
#include <png++/png.hpp>
//...
png::image< png::index_pixel > image;
png::palette pal(256);
for (size_t i = 0; i < pal.size(); ++i)
{
pal[i] = png::color(i, 255 - i, i);
}
image.set_palette(pal);
...
image.write("palette.png");