1

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

如何在 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
4

1 回答 1

2

您正在GraphicsOriginalImage. 您需要从您的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
于 2013-05-28T16:56:27.090 回答