Сохранение изображения в файл

Я работаю над основным приложением рисования. Я хочу, чтобы пользователь мог сохранять содержимое изображения.

enter image description here

Я думал, что должен использовать

System.Drawing.Drawing2D.GraphicsState img = drawRegion.CreateGraphics().Save();

но это не помогает мне сохранить файл.

Ответы

Ответ 1

Вы можете попытаться сохранить изображение, используя этот подход

SaveFileDialog dialog = new SaveFileDialog();
if (dialog.ShowDialog() == DialogResult.OK)
{
   int width = Convert.ToInt32(drawImage.Width); 
   int height = Convert.ToInt32(drawImage.Height); 
   Bitmap bmp = new Bitmap(width,height);        
   drawImage.DrawToBitmap(bmp, new Rectangle(0, 0, width, height);
   bmp.Save(dialog.FileName, ImageFormat.Jpeg);
}

Ответ 3

Если вы рисуете Графика элемента управления, вы должны сделать что-то, нарисованное на растровом изображении, все, что вы рисуете на холсте, но имейте в виду, что битмап должен быть точного размера элемента управления, на котором вы рисуете:

  Bitmap bmp = new Bitmap(myControl.ClientRectangle.Width,myControl.ClientRectangle.Height);
  Graphics gBmp = Graphics.FromImage(bmp);
  gBmp.DrawEverything(); //this is your code for drawing
  gBmp.Dispose();
  bmp.Save("image.png", ImageFormat.Png);

Или вы можете использовать метод DrawToBitmap для элемента управления. Что-то вроде этого:

Bitmap bmp = new Bitmap(myControl.ClientRectangle.Width, myControl.ClientRectangle.Height);
myControl.DrawToBitmap(bmp,new Rectangle(0,0,bmp.Width,bmp.Height));
bmp.Save("image.png", ImageFormat.Png);