在picturebox中保存矩形内部

时间:2011-08-23 10:08:01

标签: c# winforms picturebox

我有类似的东西 - 从文件加载到picturebox1的图像:

enter image description here

然后在按下'SelectArea'按钮后,我可以在加载的图片上绘制矩形:

enter image description here

最后按下另一个按钮'SaveArea'后我想将img保存在创建的矩形内,这样我就可以将图像保存在我的驱动器上,如下所示:

enter image description here

如何编写帮助我完成最后一步的代码 - >保存在矩形内部?

TNX。

1 个答案:

答案 0 :(得分:1)

首先新建一个具有正确尺寸的位图

然后使用Graphics.FromImage为此创建一个Graphics对象,然后在生成的Graphics对象上使用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");