我很抱歉,目前没有广泛版本的文档可用。我只创建了几个例子并在网站上记录下来。我没有时间/团队来创建更多更好的文档。但我可以帮你解答这两个问题。
convert -flatten image.png noTransparency.png
这实际上应该这样写:
convert image.png -flatten noTransparency.png
首先image.png
被读取,然后它被夷为平地,写入noTransparency.png
。但在ImageMagick中,它'偷偷'添加了与image.png
大小相同的另一张图像,并使用该图像将其平铺为image.png
。您可以在Magick.NET写这样的:
using (MagickImageCollection images = new MagickImageCollection())
{
MagickImage imagePng = new MagickImage("image.png");
// 'add background'
MagickImage background = new MagickImage(imagePng.BackgroundColor, imagePng.Width, imagePng.Height);
images.Add(background);
// image.png
images.Add(imagePng);
// +flatten
using (MagickImage result = images.Flatten())
{
// noTransparency.png
result.Write("noTransparency.png");
}
}
但你也可以写这样的:
using (MagickImage imagePng = new MagickImage("image.png"))
{
imagePng.ColorAlpha(imagePngg.BackgroundColor);
result.Write("noTransparency.png");
}
还有你的另一例子不能与当前版本翻译(7.0.0.0016)因为+透明尚未支持。
convert original.png +transparent "#E6B15A" singleColor.png1
在未来的版本中,你将能够做到这一点:
using (MagickImage original = new MagickImage("original.png"))
{
original.InverseTransparent(new MagickColor("#E6B15A"));
original.Write("singleColor.png");
}
但是你可以做这样的现在:
using (MagickImage original = new MagickImage("original.png"))
{
original.InverseOpaque(new MagickColor("#E6B15A"), MagickColor.Transparent);
original.Write("singleColor.png");
}
而且你可以随时要求在这里获取更多帮助:https://magick.codeplex.com/discussions。
对我来说,'MagickImageCollection' +'Flatten'示例效果很好。 “InverseTransparent”示例尚不可用,“InverseOpaque”示例生成完全白色的图像。 – bzlm
看来我完全忘了添加InverseTransparent方法。我为此创建了一个问题:https://magick.codeplex.com/workitem/1365。你可以在这里寻求有关InverseOpaque的帮助:https://magick.codeplex.com/discussions – dlemstra
为了澄清,创建画布并使图像变平的示例完全符合我的要求,而且我不是OP。 :) @dlemstra – bzlm