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

#运行环境:

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

    原文作者:willingtolove
    原文地址: https://blog.csdn.net/willingtolove/article/details/120145832
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞