【发布时间】:2013-10-29 04:12:45
【问题描述】:
我正在尝试学习 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;
}
【问题讨论】:
标签: c++ imagemagick magick++