当前位置: 首页 > 工具软件 > Magick.NET > 使用案例 >

Magick.NET图片处理:解决png转jpg背景色为黑色的问题(设置背景色)

丰辰沛
2023-12-01

#运行环境:

  • .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");
    }
}


 类似资料: