矩形内保存在图片框

问题描述:

我有类似的东西 - 加载从文件picturebox1图像:矩形内保存在图片框

enter image description here

,然后再按下“SelectArea”后,我可以画上加载图片矩形:

enter image description here

最后在按下另一个按钮“SaveArea”后,我想将img保存在创建的矩形内,因此我将图像保存在我的驱动器中,如下所示:

enter image description here

如何编写代码,帮我做这最后一步 - >保存的矩形内?

Tnx。

一新了合适的尺寸

位图

然后创建一个图形对象为这个与Graphics.FromImage,然后使用生成的图形对象上的DrawImage方法来绘制你的大图像的部分到位图。

最后保存的位图对象与保存:

public static void SaveBitmapPart(System.Drawing.Image image, System.Drawing.RectangleF sourceRect, string pathToSave) 
{ 
    using (var bmp = new System.Drawing.Bitmap((int)sourceRect.Width, (int)sourceRect.Height)) 
    { 
     using (var graphics = System.Drawing.Graphics.FromImage(bmp)) 
     { 
      graphics.DrawImage(image, 0.0f, 0.0f, sourceRect, System.Drawing.GraphicsUnit.Pixel); 
     } 
     bmp.Save(pathToSave); 
    } 
} 

所以只是把它叫做:

SaveBitmapPart(picturebox1.Image, myRectangle, @"c:\Temp\Test.bmp"); 
+0

PS可以使用PictureBoxes-image属性为 “图像”(第一个参数)为这个小功能。 – Carsten

+0

Tnx,但我仍然有问题。当我在我的picturebox上选择矩形 - 640x480,例如矩形(300x300),然后我保存的图片为300x300,但矩形内的所有内容都位于左上角,并且没有拉伸 - 就像矩形内部的微img。 – Elfoc

+0

你没有写任何关于拉伸图像的东西,也没有你的示例sugguest - 总之它很容易 - 只需将DrawImage-Method更改为可处理图像拉伸的重载(只需查看MSDN文档 - 非常好)当然你也必须为你desiered大小的位图) – Carsten