C# 关于位图在.NET中保存的问题

C# 关于位图在.NET中保存的问题,c#,.net,bitmap,C#,.net,Bitmap,我有一个位图对象,用setpixel方法在上面画了一些曲线。当我将此位图保存为jpg文件时,图片的背景不是白色表面。背景是透明的。有什么问题?如何解决此问题?在绘制位图之前,请调用图形。清除(颜色.白色)。如果您还没有位图的System.Drawing.Graphics实例,请按以下方法获取: Graphics g = Graphics.FromImage(bitmap); 清除位图: g.Clear(Color.White); 当然,在处理完图形后,不要忘记调用Dispose() g.Di

我有一个位图对象,用setpixel方法在上面画了一些曲线。当我将此位图保存为jpg文件时,图片的背景不是白色表面。背景是透明的。有什么问题?如何解决此问题?

在绘制位图之前,请调用
图形。清除(颜色.白色)
。如果您还没有位图的
System.Drawing.Graphics
实例,请按以下方法获取:

Graphics g = Graphics.FromImage(bitmap);
清除位图:

g.Clear(Color.White);
当然,在处理完图形后,不要忘记调用
Dispose()

g.Dispose();

您确定要以JPEG格式保存图像吗?好吧,JPEG不支持透明性,所以您可能正在将图像保存为带有“.jpg”扩展名的GIF或PNG格式,而您的查看器忽略了扩展名


在任何情况下,Zach的解决方案都应该在开始绘制之前用纯色背景填充位图。

并且背景是透明的???这怎么可能?BMP或JPG格式都不支持透明度…创建
System.Drawing.Bitmap
时,默认情况下,其所有像素都是透明的。当你以不支持透明的格式保存位图时,透明像素通常会变成黑色。@Zach:是的,我知道。但是OP说生成的jpg或bmp是透明的:“当我把这个位图保存为jpg文件时,我的图片的背景不是白色的,背景是透明的。”。这就是为什么我一直试图澄清。。。