2017-07-03 133 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"); 
}