使用ImageMagick展平PNG图像

时间:2014-03-05 07:49:22

标签: imagemagick magick++

使用shell命令,我可以在具有透明度的PNG文件上执行以下操作:

convert image.png -background Black -flatten image.png

结果图像现在有黑色背景。我如何使用Magick ++ API执行此操作?我有一个Image对象,我已经用于其他一些操作:

Image img(filename);
img.resize(Magick::Geometry("x48"));
img.unsharpmask(5.0, 0.5, 50.0, 50.0);
img.gamma(0.5);
...

在进行大小调整之前,我需要处理图像透明度并将其变为黑色。

感谢。

1 个答案:

答案 0 :(得分:1)

-flatten选项可以在STL.h中找到,称为flattenImages。该方法需要一个容器的图像。以下是如何使用该方法的示例。

Image img(filename);

Geometry size(img.columns(), img.rows());
Color color(0,0,0);
Image black(size, color);

std::list<Image> images;
images.push_back(black);
images.push_back(img);

Image flattenedImage;
flattenImages(&flattenedImage, images.begin(), images.end());

flattenedImage.resize(Geometry("x48"));