将png图片转为jpg图片时,由于png有透明背景,导致导出的jpg图片背景是黑色的;
ColorAlpha
using (MagickImage imagePng = new MagickImage("image.png"))
{
//将透明背景改为白色背景输出
imagePng.ColorAlpha(MagickColors.White);
imagePng.Write("noTransparency.jpg");
}
MagickImageCollection
+Flatten
using (MagickImageCollection images = new MagickImageCollection())
{
MagickImage imagePng = new MagickImage("image.png");
// 'add background',将背景设为红色
MagickImage background = new MagickImage(MagickColors.Red, imagePng.Width, imagePng.Height);
images.Add(background);
// image.png
images.Add(imagePng);
// +flatten
using (MagickImage result = (MagickImage)images.Flatten())
{
// noTransparency.png
result.Write("noTransparency.jpg");
}
}