Я ищу способ получить буфер данных изображения в файл PNG и способ получить файл PNG в буфер.
Есть только две вещи, которые я хочу сделать.
Это была бы просто мертвая оболочка, которая использует png.h
.Ну, не совсем просто из-за ужасно сложного API-интерфейса libpng, но его концепция такова.
Я пробовал DevIL раньше.Это намного проще в использовании, чем libpng.Тем не менее, у меня было проблем с ним.Кроме того, DevIL слишком много .Мне нужна только бережливость и поддержка базового формата PNG, а не 20 других форматов.
Тогда я нахожу эту страницу .Я похвалил Pixel Fairy и Всемогущего Google за то, что они дали мне реализацию на серебряном блюде ... Тогда получается, что это искажает изображение: в обработанном изображении пропадает каждый четвертый пиксель в каждой линии сканирования.Я вполне уверен, прочитав источник, что это не должно произойти!Он должен обнулить красный и установить зеленый на синий.Этого тоже не случилось.
Я также пробовал png ++.Проблема, с которой я столкнулся, заключается в том, что я не мог получить данные из PNG в формате, совместимом для загрузки в OpenGL, мне пришлось бы создать еще один буфер.Это выглядело некрасиво, но я обязательно попробую png ++ еще раз, прежде чем даже подумать о том, чтобы дать DevIL еще один шанс.Потому что png ++ работал, по крайней мере.Это также имеет аспект только заголовка, идущий на это.Тем не менее, он выдал кучу предупреждений компилятора.
Есть ли другие претенденты?Любой, кто работал с непосредственным использованием libpng, знал бы, как сделать то, что я запрашиваю: одну функцию, которая берет имя файла и заполняет 32-битный буфер и устанавливает два целых числа разрешения;одна функция, которая принимает 32-битный буфер, два целых числа разрешения и имя файла.
Обновление-редактирование: я нашел это .Может быть что-то там.