2012-02-24 146 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