'假设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 对象保存起来,并在需要的时候读取等等……
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐