1

適切に作成された.pngファイルを次のように定義された画像にロードできるように環境を構成しました。

        boost::gil::rgb8_image_t input;

しかし、どのようにすれば一般的なタイプのpngファイル(GIMPやMSペイントによって生成されたものなど)をロードできますか。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ペイントまたは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 に答える