积极答复者
从内存中读取图片,不能显示的问题?

问题
-
使用NORTHWND实例数据库,显示其中的雇员照片。
连接打开看数据集已经填充,DataGridView已经正常显示雇员表格。
然后开始使用PictureBox1来显示其中的照片,就出了问题:参数不正确。
代码如下:
Try
Me.PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
Dim xyxy() As Byte
xyxy = mm.dataset1.Tables.Item(mm.dataset1.Tables.IndexOf("Employees")).Rows(3).Item(14)
Dim w As System.IO.MemoryStream = New System.IO.MemoryStream(xyxy)
Me.PictureBox1.Image = System.Drawing.Image.FromStream(w)Catch ex As Exception
MsgBox(ex.ToString)
End Try不知道怎么回事?
答案
-
是的,那是因为Northwind数据库中的图片貌似编码不太一样。我建议您尝试重新对Byte进行编码然后读取绑定。
参考:
Using ms As New MemoryStream(New Byte()) '声明一个Bitmap类 Dim bm As New Bitmap(ms) '重新声明一个新的MemoryStream Dim ms2 As New MemoryStream bm.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) '然后使用ms2 End Using
- 已编辑 fengqiwuyong 2012年7月11日 9:04
- 已标记为答案 fengqiwuyong 2012年7月11日 9:04
全部回复
-
是的,那是因为Northwind数据库中的图片貌似编码不太一样。我建议您尝试重新对Byte进行编码然后读取绑定。
参考:
Using ms As New MemoryStream(New Byte()) '声明一个Bitmap类 Dim bm As New Bitmap(ms) '重新声明一个新的MemoryStream Dim ms2 As New MemoryStream bm.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) '然后使用ms2 End Using
-
是的,那是因为Northwind数据库中的图片貌似编码不太一样。我建议您尝试重新对Byte进行编码然后读取绑定。
参考:
Using ms As New MemoryStream(New Byte()) '声明一个Bitmap类 Dim bm As New Bitmap(ms) '重新声明一个新的MemoryStream Dim ms2 As New MemoryStream bm.Save(ms2, System.Drawing.Imaging.ImageFormat.Jpeg) '然后使用ms2 End Using
- 已编辑 fengqiwuyong 2012年7月11日 9:04
- 已标记为答案 fengqiwuyong 2012年7月11日 9:04