使用Magick ++解码PNG图像

时间:2012-10-25 13:45:06

标签: c++ image image-processing imagemagick opencl

我需要将解码后的RGBA数据(来自32位PNG)放在cl :: Image2D中,然后(经过一些处理后)用enqueueReadImage()将其写回Magick ++图像。

但是,目前我还没有看到任何方法直接在Magick ++图像对象中访问RGBA数据。这可能吗?如果没有,从Magick ++对象获取RGBA格式数据的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用Magick :: Image :: write函数

Magick::Image im;
// read image ....

// only for RGBA !!!
size_t im_size = im.columns() * im.rows() * 4;
uint8_t * pixels = new uint8_t[im_size];
im.write(0, 0, im.columns(), im.rows(), "RGBA", ::Magick::CharPixel, pixels);