Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从较大的图像中裁剪矩形_Vb.net_Gdi+ - Fatal编程技术网

Vb.net 从较大的图像中裁剪矩形

Vb.net 从较大的图像中裁剪矩形,vb.net,gdi+,Vb.net,Gdi+,我正在使用我在另一个stackoverflow问题上找到的一个变体代码,在指定位置从一个较大的图像中裁剪出一个矩形。但每次它的作物得到正确的宽度和高度,但图像显示为黑色 *面是预定义的矩形对象 Dim OrignalImage = Image.FromFile("C:\fileName.jpg") Dim CropImage = New Bitmap(face.Width, face.Height) Using grp = Graphics.F

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

*面是预定义的矩形对象

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

您正在从
原始图像
创建
图形
对象。您需要从
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

看起来您正在创建具有所需大小的
CropImage
对象,但从未告诉
DrawImage()
将图像应用于该对象。因此,当您保存
CropImage
时,它只是一个空白。您使用的
DrawImage
可能也不正确,但如果没有更多信息,我无法判断。你想干什么?您有一个大图像(fileName.jpg)和该图像(face)中的一个矩形,并且您正试图创建一个包含源图像指定部分的新裁剪图像(newfile.jpg)?如果这是您想要的,请尝试我编辑的代码。谢谢!最后一个问题,如果我想稍微扩大矩形的面积,我会在哪里进行调整?到
面.width
面.height
?在面周围放置填充物?是的,听起来很合理。实际上我刚刚试过,它只是添加了空白,也许我需要将它添加到face对象中,因为它用于
grp.drawimage