0

Magick ++、特に画像のすべてのピクセルの RGB 値を出力する方法を学習しようとしています。ここに、タスクを達成するための gif ファイルと次の C++ コードがあります。何らかの理由で、ほとんどが 0 のトリプレットを生成し、画像の実際の色を表していないジャンク値がまれに発生します。私は何を間違っていますか?

画像へのリンク

#include <Magick++.h>
#include <iostream>

using std::cout;
using std::endl;
using namespace Magick;

int main()
{
    Image image("forest.gif");
    image.modifyImage();
    image.type(TrueColorType);
    int nx = image.columns();
    int ny = image.rows();

    PixelPacket *pixel_cache = image.getPixels(0,0,nx,ny);
    for (int i = 0; i < nx; ++i)
    {
        for (int j = 0; j < ny; ++j)
        {
            PixelPacket* pix = pixel_cache + j*nx + i;
            cout << pix->red << " " << pix->green << " " << pix->blue << endl;
        }
    }

    return 0;
}
4

2 に答える 2