我正在使用 png++,它工作正常,但您需要将像素类型设置为模板参数:
png::image< png::rgb_pixel > image("input.png");
问题是我在编译时不知道它是否是 rgb、rgba 等。似乎找不到让 png++ 告诉我 png 中实际包含哪些信息的方法。
有任何想法吗?
谢谢。
嘿,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。