2

我正在使用 png++,它工作正常,但您需要将像素类型设置为模板参数:

 png::image< png::rgb_pixel > image("input.png");

问题是我在编译时不知道它是否是 rgb、rgba 等。似乎找不到让 png++ 告诉我 png 中实际包含哪些信息的方法。

有任何想法吗?

谢谢。

4

2 回答 2

4

嘿,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。

于 2011-01-21T07:16:43.187 回答
2

尝试使用阅读器。然后检查它的基类io_base的成员函数。我认为它有你正在寻找的东西。

于 2011-01-20T17:32:41.467 回答