我目前正在尝试保存位图图像,但背景会变为黑色。
我可以“另存为”图像完美无缺。我也可以“保存”图像。这更难,因为我不得不覆盖现有的图像。
然而,当我“保存”我的图像时,背景变黑了。我不知道是什么导致了它。
这是我的代码:
Bitmap tempImage = new Bitmap(DrawArea);
DrawArea.Dispose();
if (extension == ".jpeg")
tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
else
tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
DrawArea = new Bitmap(tempImage);
pictureBox1.Image = DrawArea;
tempImage.Dispose();
答案 0 :(得分:23)
创建一个空白位图。使用该空白位图创建要写入的图形对象。清除位图并将其颜色更改为白色。然后绘制图像,然后保存位图。
Bitmap blank = new Bitmap(DrawArea.Width, DrawArea.Height);
Graphics g = Graphics.FromImage(blank);
g.Clear(Color.White);
g.DrawImage(DrawArea, 0, 0, DrawArea.Width, DrawArea.Height);
Bitmap tempImage = new Bitmap(blank);
blank.Dispose();
DrawArea.Dispose();
if (extension == ".jpeg")
tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg);
else
tempImage.Save(fileName, System.Drawing.Imaging.ImageFormat.Bmp);
DrawArea = new Bitmap(tempImage);
pictureBox1.Image = DrawArea;
tempImage.Dispose();
答案 1 :(得分:2)
尝试以PNG格式保存图像而不是JPEG ..