54

I am working on a basic drawing application. I want the user to be able to save the contents of the image.

enter image description here

I thought I should use

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

but this does not help me for saving to file.

0

4 Answers 4

82

You could try to save the image using this approach

SaveFileDialog dialog=new SaveFileDialog(); if (dialog.ShowDialog()==DialogResult.OK) { int width = Convert.ToInt32(drawImage.Width); int height = Convert.ToInt32(drawImage.Height); using(Bitmap bmp = new Bitmap(width, height)) { drawImage.DrawToBitmap(bmp, new Rectangle(0, 0, width, height)); bmp.Save(dialog.FileName, ImageFormat.Jpeg); } } 
Sign up to request clarification or add additional context in comments.

4 Comments

where would this image be saved?
Any place indicated by the property dialog.Filename
What is "drawImage"? I tried the Bitmap but it doesn't recognize DrawToBitmap()
See: stackoverflow.com/questions/54628992/… It is a method of the Form instance currently containing the drawing area
57

You can try with this code

Image.Save("myfile.png", ImageFormat.Png) 

Link : http://msdn.microsoft.com/en-us/library/ms142147.aspx

1 Comment

Note: Not static, you have to use objectName.Save()
5

If you are drawing on the Graphics of the Control than you should do something draw on the Bitmap everything you are drawing on the canvas, but have in mind that Bitmap needs to be the exact size of the control you are drawing on:

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

Or you can use a DrawToBitmap method of the Control. Something like this:

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

Comments

1

You can save image , save the file in your current directory application and move the file to any directory .

 Bitmap btm = new Bitmap(image.width,image.height); Image img = btm; img.Save(@"img_" + x + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); FileInfo img__ = new FileInfo(@"img_" + x + ".jpg"); img__.MoveTo("myVideo\\img_" + x + ".jpg"); 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.