我正在使用我在另一个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
答案 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