0

使用 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);
...

在调整大小之前,我需要注意图像的透明度并将其设置为黑色。

谢谢。

4

1 回答 1

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"));
于 2014-03-05T09:01:37.827 回答