从较大的图像中裁剪矩形

时间:2013-05-28 16:45:28

标签: vb.net gdi+

我正在使用我在另一个stackoverflow问题上找到的代码变体来从指定位置的较大图像中裁剪出一个矩形。但每次裁剪都会得到正确的宽度和高度,但图像显示为黑色。

How to crop an image in vb.net?

* face是预定义的矩形对象。

Dim OrignalImage = Image.FromFile("C:\fileName.jpg")

            Dim CropImage = New Bitmap(face.Width, face.Height)
            Using grp = Graphics.FromImage(OrignalImage)
                grp.DrawImage(OrignalImage, OrignalImage.Width, OrignalImage.Height, face, GraphicsUnit.Pixel)
                OrignalImage.Dispose()
                CropImage.Save("C:\newfile.jpg")
                grp.Dispose()
            End Using

1 个答案:

答案 0 :(得分:2)

您正在Graphics创建OriginalImage个对象。您需要从CropImage创建它。

此外,您无需致电grp.Dispose(),因为Using阻止会为您执行此操作。

更正后的代码:

Using OrignalImage = Image.FromFile("C:\fileName.jpg")
Using CropImage = New Bitmap(face.Width, face.Height)
    Using grp = Graphics.FromImage(CropImage)
        grp.DrawImage(
            OrignalImage, 0, 0,
            face, GraphicsUnit.Pixel)
    End Using
    CropImage.Save("C:\newfile.jpg")
End Using
End Using
相关问题