使用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);
...
在进行大小调整之前,我需要处理图像透明度并将其变为黑色。
感谢。
答案 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"));