2012-02-24 145 views
0

我使用透明背景將圖像保存爲jpeg。 有沒有辦法將透明像素轉換爲某種顏色而不用迭代所有像素?圖像處理 - 在將圖像保存爲jpg之前轉換透明像素

這是我使用的代碼(也 - 在第一線的共同辦法做到這一點是有不同的編碼器?)

public void SaveImage(Bitmap image, string path) 
{ 
    var encoder = ImageCodecInfo.GetImageEncoders().FirstOrDefault(c => c.MimeType == "image/jpeg"); 
    var encodeParams = new EncoderParameters(1); 
    encodeParams.Param[0] = new EncoderParameter(Encoder.Quality, (long)100); 

    image.Save(path, encoder, encodeParams); 
} 

回答

0

通常的解決方案是用你想要的背景顏色製作一個位圖圖像,渲染你的圖像,並將這個位圖保存/轉換爲圖像。

檢查Graphics.FromImage。這將爲您提供位圖的圖形渲染對象。

+0

謝謝,這就是我最終做的 – Madd0g 2012-02-26 05:28:15

1
image.MakeTransparent(image.GetPixel(0, 0)); 

但是,這可能是因爲傷心地爲PNG保存jpg不支持透明度

+0

我已經有透明像素,我想把它們全部變成非透明 – Madd0g 2012-02-24 22:14:23