vb6 如何将字节集图片显示到图片框,具体点进介绍

min23456 2015-06-01 09:00:17
我需要调用一个dll,dll里有一个函数,在调用后,返回的是一个字节集,准确说法是字节数组,而我需要将这段字节集加载到图片框显示出来,本来,可以直接写到文件,然后通过路径,用loadpicture加载,但我不想写成文件,求其他方法
...全文
4168 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vansoft 2015-06-18
  • 打赏
  • 举报
回复
引用 2 楼 ecz00 的回复:
PropertyBag对象并不止于读取保存图片,它就象一个大麻袋,可以藏任何东西,并放到你想放的地方,具体藏什么 ,是由你决定的。你可以将任何对象保存为Byte(),并在需要的时候读出来 如将 ADO 的 RecordSet 对象保存起来,并在需要的时候读取等等…… [将picture保存到数组] '假设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格式的数组,而非普通位图的数组,所以你也不用担心转换后的数组很没有压缩,很大。
+10086
Carlven2012 2015-06-02
  • 打赏
  • 举报
回复

Public Sub ShowBmp(byt() As Byte)
    Dim bmi As BITMAPINFO
    '设置BMP信息头
    With bmi.bmiHeader
        .biBitCount = 24
        .biCompression = 0
        .biPlanes = 1
        .biSize = Len(bmi.bmiHeader)    '40
        .biWidth = fW
        .biHeight = fH
        .biSizeImage = .biHeight * (((.biWidth * .biBitCount + 31) And &HFFFFFFE0) \ 8)
    End With

    Clear
    With Picture1
        hasImage = True
        SetDIBits .hdc, .Image.handle, 0, bmi.bmiHeader.biHeight, byt(LBound(byt)), bmi, 0
        .Refresh
    End With
End Sub
这是我用的一段代码,作用就是将一个图片的数据(字节数组),在PictureBox里面显示出这张图片来。
ecz00 2015-06-01
  • 打赏
  • 举报
回复
PropertyBag对象并不止于读取保存图片,它就象一个大麻袋,可以藏任何东西,并放到你想放的地方,具体藏什么 ,是由你决定的。你可以将任何对象保存为Byte(),并在需要的时候读出来 如将 ADO 的 RecordSet 对象保存起来,并在需要的时候读取等等…… [将picture保存到数组] '假设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格式的数组,而非普通位图的数组,所以你也不用担心转换后的数组很没有压缩,很大。
赵4老师 2015-06-01
  • 打赏
  • 举报
回复
写成文件不会死人的。

1,066

社区成员

发帖
与我相关
我的任务
社区描述
VB 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧