我已经配置了我的环境,以便我可以将一个精心设计的.png文件加载到这样定义的图像中:
boost::gil::rgb8_image_t input;
但是如何加载任何典型类型的png文件(例如由GIMP或MS Paint生成)。我认为它需要boost :: gil :: any_image,但我不知道我需要配置它的类型。
我试过了:
typedef boost::mpl::vector<
boost::mpl::rgba8_planar_image_t,
boost::mpl::rgba8_image_t,
boost::mpl::rgb8_planar_image_t,
boost::mpl::rgb8_image_t,
boost::mpl::gray8_image_t
> my_img_types;
boost::mpl::any_image<my_img_types> input;
boost::gil::png_read_image(ipath, input);
但是不会加载由MS Paint或GIMP创建的文件。
答案 0 :(得分:4)
您是否尝试过使用函数系列png_read_and_convert _ *
例如:
boost::gil::rgb8_image_t input;
boost::gil::png_read_and_convert_image(ipath, input);
您将以这种方式丢失图像的原始类型,但如果您想要一个固定类型的代码来操作,这可能是一个很好的方法。