如何使用boost :: gil加载任何典型的png文件

时间:2012-06-30 23:32:04

标签: boost-gil

我已经配置了我的环境,以便我可以将一个精心设计的.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创建的文件。

1 个答案:

答案 0 :(得分:4)

您是否尝试过使用函数系列png_read_and_convert _ *

例如:

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

您将以这种方式丢失图像的原始类型,但如果您想要一个固定类型的代码来操作,这可能是一个很好的方法。