矩形内保存在图片框
问题描述:
我有类似的东西 - 加载从文件picturebox1图像:矩形内保存在图片框
,然后再按下“SelectArea”后,我可以画上加载图片矩形:
最后在按下另一个按钮“SaveArea”后,我想将img保存在创建的矩形内,因此我将图像保存在我的驱动器中,如下所示:
如何编写代码,帮我做这最后一步 - >保存的矩形内?
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");
PS可以使用PictureBoxes-image属性为 “图像”(第一个参数)为这个小功能。 – Carsten
Tnx,但我仍然有问题。当我在我的picturebox上选择矩形 - 640x480,例如矩形(300x300),然后我保存的图片为300x300,但矩形内的所有内容都位于左上角,并且没有拉伸 - 就像矩形内部的微img。 – Elfoc
你没有写任何关于拉伸图像的东西,也没有你的示例sugguest - 总之它很容易 - 只需将DrawImage-Method更改为可处理图像拉伸的重载(只需查看MSDN文档 - 非常好)当然你也必须为你desiered大小的位图) – Carsten