2017-07-03 132 views
1

我需要将JPG图像转换为PNG,并将其白色背景改为透明。我使用ImageMagick.NET,我发现,是应该做的事情,我想实现以下ImageMagick的命令:使用ImageMagick.Net将背景透明转换为PNG到PNG

convert image.jpg -fuzz XX% -transparent white result.png 

我曾尝试转换为C#,但所有我得到的是一个PNG图像白色背景。我的代码片段:

using (var img = new MagickImage("image.jpg")) 
{ 
    img.Format = MagickFormat.Png; 
    img.BackgroundColor = MagickColors.White; 
    img.ColorFuzz = new Percentage(10); 
    img.BackgroundColor = MagickColors.None; 
    img.Write("image.png"); 
} 

任何形式的帮助将不胜感激。谢谢!!

+0

'img.BackgroundColor = MagickColors.White;'广东话你使用'MagickColours.Transparent'呢? (如果存在的话) – SCramphorn

+0

你使用BackgroundColor两次是否合理?首先是MagickColors.White,然后是MagickColors.None? – Blaatz0r

+0

非常感谢您的建议。它确实存在。 MagickColors.Transparent将RGBA值设置为#FFFFFF00。尝试用'MagickColours.Transparent'替换'MagickColors.White'并删除BackgroundColor的第二个实例,但它仍然给我相同的结果。一个白色背景的PNG图像... –

回答

2

命令行上的大部分参数都是MagickImage类中的属性或方法。你的命令将转化为这样:

using (var img = new MagickImage("image.jpg")) 
{ 
    // -fuzz XX% 
    img.ColorFuzz = new Percentage(10); 
    // -transparent white 
    img.Transparent(MagickColors.White); 
    img.Write("image.png"); 
}