Фон становится черным при сохранении растрового изображения - C#
В настоящее время я пытаюсь сохранить растровое изображение, но фон меняется на черный.
Я могу "Сохранить как" изображение отлично. Я также могу "сохранить" изображение. Что было гораздо сложнее, потому что мне пришлось перезаписать существующее изображение.
Однако, когда я "сохраняю" свое изображение, фон становится черным. И я понятия не имею, что вызывает это.
Вот мой код:
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 ответа
Решение
Создайте пустое растровое изображение. Создайте графический объект для записи с этим пустым растровым изображением. Очистите растровое изображение и измените его цвет на белый. Затем нарисуйте изображение и сохраните растровое изображение.
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();