Vb.net Visual Studio:PictureBox未显示完整图像

Vb.net Visual Studio:PictureBox未显示完整图像,vb.net,picturebox,Vb.net,Picturebox,在应用程序的使用过程中,用户存储了一张图片,以便稍后进行比较 从数据库检索图像时,图像不会在图片框中完全渲染,如下所示。已检索到正确的图像,但只有顶部可见 我尝试了多种不同的图片框设置和图像类型,但结果总是一样的。我还用相同的代码在另一个项目中复制了错误 我使用的代码如下: Dim b() As Byte b = DirectCast(cmd.ExecuteScalar, Byte()) If b Is Not Nothing Then stream = New System.I

在应用程序的使用过程中,用户存储了一张图片,以便稍后进行比较

从数据库检索图像时,图像不会在图片框中完全渲染,如下所示。已检索到正确的图像,但只有顶部可见

我尝试了多种不同的图片框设置和图像类型,但结果总是一样的。我还用相同的代码在另一个项目中复制了错误

我使用的代码如下:

Dim b() As Byte
b = DirectCast(cmd.ExecuteScalar, Byte())
If b Is Not Nothing Then
       stream = New System.IO.MemoryStream
       stream.Write(b, 0, b.Length)
       Dim image As Image = image.FromStream(stream)
       pictureBox.Image = image
End if
我想不出来。以前有人见过这样的东西吗?
谢谢

在哪里定义?如果您阅读Image.FromStream方法文档,它会说:

您必须在映像的生命周期内保持流打开

如果使用连续调用此方法,则流将重置为零 同一条小溪


几天前我遇到了同样的问题。通过将窗体的doubleBuffered属性设置为true,解决了此问题。谢谢,但我只是尝试了一下,但没有解决此问题。很抱歉,这可能就是解决方案。您必须删除picturebox并将其再次添加到表单中。在某些情况下,这是可行的。或者使用任何其他控件而不是picturebox。我想可能会有像定制图片盒这样的东西。你可以在谷歌上找到它,或者你可以尝试在一个按钮中添加图片,如果它起作用,那么你的设计就会出现问题,如果你得到相同的结果,那么你的代码或数据库中就会出现问题。或者更改图像的大小并重试。我尝试将图像添加到按钮,但也失败了。所以您可能是对的,数据库或代码一定有问题。数据库中的数据类型长度限制为4000,varbinary(4000)。我不知道这是否是个问题。不过,我正在检索的图像非常小。OP中的代码位于try/catch块和if语句中。流是在这些之外定义的。