我该如何解决 GDI+ 中出现一般性错误。在 VB.Net?
How could I resolve A generic error occurred in GDI+. in VB.Net?
当 class 中的图像字段 属性 设置为图片框中我的数据库中相同图像的图像原始格式时,它总是抛出此异常。相比之下,如果图片框中的图像已从我的本地 PC 目录更新为 select,则更新功能正常。
下面是我的代码:
Try
With mEmployee
If Miscellaneous.GetImageName(ofdPhoto).ToLower = "No_Photo.jpg".ToLower Then
.Image = Nothing
Else
Dim stream As New MemoryStream
pbImage.Image.Save(stream, pbImage.Image.RawFormat)
.Image = stream.GetBuffer()
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
现在一切都解决了。此 GDI+ 一般错误由图片框本身引起。实际上,当我将记录与数据库中的图像绑定并更新该记录而不更新 PictureBox 中的图像时,图像字段已使用框中的旧 byte() 数据设置,这导致了错误。
为了解决这个问题,我声明了一个 byte() 类型的变量来存储数据库中的临时图像 byte() 数据,并且在更新时,如果图像没有被更改,它将被设置为来自那个变量。
这是我解决所有问题的代码:
Try
If Miscellaneous.GetImageName(ofdPhoto).ToLower = "No_Photo.jpg".ToLower Then
.Image = Nothing
Else
If isImageChanged = True Then
Dim stream As New MemoryStream
pbImage.Image.Save(stream, pbImage.Image.RawFormat)
.Image = stream.GetBuffer()
isImageChanged = False
ElseIf isRemoveImage = True Then
.Image = Nothing
isRemoveImage = False
Else
.Image = tempImage
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
当 class 中的图像字段 属性 设置为图片框中我的数据库中相同图像的图像原始格式时,它总是抛出此异常。相比之下,如果图片框中的图像已从我的本地 PC 目录更新为 select,则更新功能正常。
下面是我的代码:
Try
With mEmployee
If Miscellaneous.GetImageName(ofdPhoto).ToLower = "No_Photo.jpg".ToLower Then
.Image = Nothing
Else
Dim stream As New MemoryStream
pbImage.Image.Save(stream, pbImage.Image.RawFormat)
.Image = stream.GetBuffer()
End If
End With
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
现在一切都解决了。此 GDI+ 一般错误由图片框本身引起。实际上,当我将记录与数据库中的图像绑定并更新该记录而不更新 PictureBox 中的图像时,图像字段已使用框中的旧 byte() 数据设置,这导致了错误。
为了解决这个问题,我声明了一个 byte() 类型的变量来存储数据库中的临时图像 byte() 数据,并且在更新时,如果图像没有被更改,它将被设置为来自那个变量。 这是我解决所有问题的代码:
Try
If Miscellaneous.GetImageName(ofdPhoto).ToLower = "No_Photo.jpg".ToLower Then
.Image = Nothing
Else
If isImageChanged = True Then
Dim stream As New MemoryStream
pbImage.Image.Save(stream, pbImage.Image.RawFormat)
.Image = stream.GetBuffer()
isImageChanged = False
ElseIf isRemoveImage = True Then
.Image = Nothing
isRemoveImage = False
Else
.Image = tempImage
End If
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try