【发布时间】:2011-08-23 18:24:28
【问题描述】:
我有类似的东西 - 图像从文件加载到图片框1:
然后按下“SelectArea”按钮后,我可以在加载的图片上绘制矩形:
最后在按下另一个按钮“SaveArea”后,我想将 img 保存在创建的矩形内,因此我会将图像保存在我的驱动器上,如下所示:
如何编写代码来帮助我完成最后一步 -> 保存在矩形内?
Tnx.
【问题讨论】:
标签: c# winforms picturebox
我有类似的东西 - 图像从文件加载到图片框1:
然后按下“SelectArea”按钮后,我可以在加载的图片上绘制矩形:
最后在按下另一个按钮“SaveArea”后,我想将 img 保存在创建的矩形内,因此我会将图像保存在我的驱动器上,如下所示:
如何编写代码来帮助我完成最后一步 -> 保存在矩形内?
Tnx.
【问题讨论】:
标签: c# winforms picturebox
首先新建一个具有正确尺寸的位图
然后您使用Graphics.FromImage为此创建一个图形对象,然后在生成的图形对象上使用DrawImage 方法将您的大图像的一部分绘制到位图上。
最后用 Save 保存位图对象:
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");
【讨论】: