保存位图时背景变黑 - C#

时间:2011-11-29 20:04:04

标签: c# image-processing bitmap

我目前正在尝试保存位图图像,但背景会变为黑色。

我可以“另存为”图像完美无缺。我也可以“保存”图像。这更难,因为我不得不覆盖现有的图像。

然而,当我“保存”我的图像时,背景变黑了。我不知道是什么导致了它。

这是我的代码:

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();

2 个答案:

答案 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 ..