#运行环境:
- .Net 版本:.Net 5
- Magick.NET版本:8.2.1
- 操作系统:Ubuntu 18.04
#问题:
将png图片转为jpg图片时,由于png有透明背景,导致导出的jpg图片背景是黑色的;
#解决方法:
1、方法一:使用ColorAlpha
using (MagickImage imagePng = new MagickImage("image.png"))
{
//将透明背景改为白色背景输出
imagePng.ColorAlpha(MagickColors.White);
imagePng.Write("noTransparency.jpg");
}
2、使用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");
}
}