2010-02-24 15 views
3

我有一個位圖對象,並通過setpixel方法在其上繪製一些曲線。當我將這個位圖保存爲jpg文件時,我的圖片背景不是白色的表面。背景是透明的。問題是什麼?我該如何解決這個問題?有關位圖保存在.NET中的問題

回答

6

在繪製位圖之前調用Graphics.Clear(Color.White)。如果你還沒有的System.Drawing.Graphics一個實例爲您的位圖,這裏是如何得到一個:

Graphics g = Graphics.FromImage(bitmap); 

清除位:

g.Clear(Color.White); 

,當然還有,不要忘記調用Dispose()時你完成了圖形。

g.Dispose(); 
0

您是否確定要以JPEG格式保存圖像? AFAIK,JPEG不支持透明度,所以也許您將圖像保存爲帶有「.jpg」擴展名的GIF或PNG,而您的查看器忽略擴展名。

在任何情況下,Zach的解決方案應該在開始繪製之前用純色背景填充位圖。

+0

是的,我保存jpg或bmp文件。 – 2010-02-24 05:46:55

+0

而你的背景是*透明*?怎麼可能? BMP或JPG格式都不支持透明度... – 2010-02-24 07:14:56

+0

當您創建一個'System.Drawing.Bitmap'時,默認情況下其所有像素都是透明的。當您以不支持透明度的格式保存「位圖」時,透明像素通常會變黑。 – 2010-02-24 20:04:57