1

我已经配置了我的环境,以便可以将适当制作的 .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 创建的文件。

4

1 回答 1

4

您是否尝试过使用函数族 png_read_and_convert_*

例如:

boost::gil::rgb8_image_t input;
boost::gil::png_read_and_convert_image(ipath, input);

这样你会丢失图像的原始类型,但是如果你想要一个固定的类型让你的代码来操作这可能是一个好方法。

于 2012-07-24T23:09:39.810 回答