2012-10-16 39 views
15

Tôi đang làm việc trên một ứng dụng vẽ cơ bản. Tôi muốn người dùng có thể lưu nội dung của hình ảnh.Lưu hình ảnh vào tập tin

enter image description here

tôi nghĩ rằng tôi nên sử dụng

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

nhưng điều này không giúp tôi để lưu vào tập tin.

+1

Loại điều khiển nào là 'drawRegion'? – Steve

+1

'drawRegion' là một bảng điều khiển – Victor

Trả lời

26

Bạn có thể thử để lưu hình ảnh sử dụng phương pháp này

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

@ Jelel Phải, bạn không đánh giá cao Intellisense đủ cho đến khi bạn viết mã như thế này bằng tay – Steve

+1

Tại sao bạn không xử lý đối tượng bmp? Điều này có thể không để tệp ở trạng thái 'mở' không? –

+0

hình ảnh này sẽ được lưu ở đâu? –

3

Nếu bạn đang vẽ trên đồ họa của Kiểm soát hơn bạn nên làm một cái gì đó vẽ trên Bitmap tất cả mọi thứ bạn đang vẽ trên vải, nhưng có trong tâm trí rằng Bitmap cần phải được kích thước chính xác của kiểm soát bạn đang dr awing 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); 

Hoặc bạn có thể sử dụng phương pháp kiểm soát DrawToBitmap. Một cái gì đó như thế này:

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); 
Các vấn đề liên quan