GDI+通用错误-不知道为什么,一切看起来都很好



我从数据库中抓取数据,一个项目图像(base64字符串),并试图在我的页面上显示它。这是我得到的:

Dim data() As Byte = CType(dsData.Tables(0).Rows(0).Item("itemimage"), Byte())
Dim stre As New MemoryStream(data, 0, data.Length)
stre.Write(data, 0, data.Length)
stre.Flush()
Dim bmp As Image = Image.FromStream(stre, True, False)
If Not bmp Is Nothing Then
    bmp.Save("temp_stock.png", Imaging.ImageFormat.Png)
    imgItem.ImageUrl = "temp_stock.png"
End If
stre.Close()
stre.Dispose()

我看不到这个问题,系统上的所有用户都有对文件夹的写访问权限,当我做bmp.Save()

时,它仍然会出现通用的GDI+错误

任何建议吗?

我假设您的数据库数据是varbinary,而不是存储为字符串的Base64图像。如果是这种情况,您可以直接将字节数组转换为base64图像。

Dim data() As Byte = CType(dsData.Tables(0).Rows(0).Item("itemimage"), Byte())
imgItem.ImageUrl = "data:image/jpeg;base64," + Convert.ToBase64String(data);

顺便说一下,你会得到一个错误,因为你在使用它来保存位图之前刷新了流。刷新清除流中的所有内容。

最新更新