回 帖 发 新 帖 刷新版面

主题:vb如何从内存中显示图片

如题

回复列表 (共6个回复)

沙发

我用WINSOCK从服务器把"1.JPG"发送到客户端(二进制文件),客户端Getdata后,有什么办法能直接读出缓冲区中的图片信息(不采用向硬盘写文件再打开的方法)? 听说有什么内存流? 希望众高手帮帮我! 有代码更好!

板凳

读出缓冲区中的图片信息
说明得更详细些!~
这个 图片信息 是什么。

3 楼

可能从VB本身的函数,控件是办不到的吧。是否可以谋求从第三方控件,API调用等。

4 楼

'假设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 楼

哦呀?
PropertyBag对象 能给大家看看吗?
大家也想知道的吧!~

6 楼

四楼的能详细说一下吗?为什么我实现不了呢
我这里已经将图片放到了byte数组中,但是在不能显示出来

我来回复

您尚未登录,请登录后再回复。点此登录或注册