我正在使用png ++,它工作正常,但您需要将像素类型设置为模板参数:
png::image< png::rgb_pixel > image("input.png");
问题是我在编译时不知道它是rgb,rgba等。似乎无法找到一种方法让png ++告诉我实际上在png中有什么信息。
有什么想法吗?
感谢。
答案 0 :(得分:3)
嘿,png++
的作者在这里提供帮助:)
如果你真的需要知道PNG图像中的像素格式,使用png::reader
是受支持的方式:
png::reader< std::istream > reader(my_stream);
reader.read_info();
png::color_type color_type = reader.get_color_type();
但是,如果您不关心图像颜色类型并且只想加载它,例如RGBA缓冲区,我建议使用png::image< rgba_pixel > image("input.png")
:这会自动将任何颜色类型的PNG图像转换为RGBA。
答案 1 :(得分:2)