Background Turns Black When Saving Bitmap - C#

£可爱£侵袭症+ 提交于 2019-12-28 06:46:19

问题


I am currently trying to save a bitmap image, but the background is changing to black.

I can "Save As" the image perfectly fine. I can also "Save" the image as well. Which was much more difficult because I had to overwrite the existing image.

However, when I "save" my image the background is turning black. And I have no idea what is causing it.

Here is my code:

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

回答1:


Create a blank bitmap. Create a graphics object to write on with that blank bitmap. Clear the bitmap and change its color to white. Then draw the image then save the bitmap.

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



回答2:


Try to save the image in PNG format rather than JPEG..



来源:https://stackoverflow.com/questions/8316987/background-turns-black-when-saving-bitmap-c-sharp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!