主题:vb如何从内存中显示图片
kytsxy
[专家分:90] 发布于 2008-06-27 10:49:00
如题
回复列表 (共6个回复)
沙发
kytsxy [专家分:90] 发布于 2008-06-27 11:45:00
我用WINSOCK从服务器把"1.JPG"发送到客户端(二进制文件),客户端Getdata后,有什么办法能直接读出缓冲区中的图片信息(不采用向硬盘写文件再打开的方法)? 听说有什么内存流? 希望众高手帮帮我! 有代码更好!
板凳
bcahzvip [专家分:6040] 发布于 2008-06-27 15:57:00
读出缓冲区中的图片信息
说明得更详细些!~
这个 图片信息 是什么。
3 楼
我是大喊三 [专家分:3010] 发布于 2008-06-27 19:38:00
可能从VB本身的函数,控件是办不到的吧。是否可以谋求从第三方控件,API调用等。
4 楼
snyga [专家分:1480] 发布于 2008-06-27 22:46:00
'假设Form 上已经存在Picture1的控件,并已经设置好图片
Dim PBag As New PropertyBag
Dim B() As Byte
PBag.WriteProperty "Picture", Picture1.Picture
'读取Picture1.Picture 图片并写到 Pbag 容器中
B = PBag.Contents '获取容器Byte 到 B() 数组中
'这时 B 就时我们想要获得的Byte数组
'读取 Byte() 数组内容到 Picture
PBag.Contents = B '指定 PBag容器的内容
'读取容器中的图片
Set Picture1.Picture = PBag.ReadProperty("Picture")
简单的几句代码就可以完成从图片到Byte() ,从Byte()到图片的转换。而且其保存和读取的格式都是使用了原始格式,即:如果你的图片框读入的是Jpg图片格式,则保存的Byte()数组也是该Jpg格式的数组,而非普通位图的数组,所以你也不用担心转换后的数组很没有压缩,很大。
其实:PropertyBag对象并不止于读取保存图片,它就象一个大麻袋,可以藏任何东西,并放到你想放的地方,具体藏什么 ,是由你决定的。你可以将任何对象保存为Byte(),并在需要的时候读出来
如将 ADO 的 RecordSet 对象保存起来,并在需要的时候读取等等……
5 楼
bcahzvip [专家分:6040] 发布于 2008-06-28 02:39:00
哦呀?
PropertyBag对象 能给大家看看吗?
大家也想知道的吧!~
6 楼
kytsxy [专家分:90] 发布于 2008-06-28 15:49:00
四楼的能详细说一下吗?为什么我实现不了呢
我这里已经将图片放到了byte数组中,但是在不能显示出来
我来回复