vb怎么用二进制读取图片

vb怎么用二进制读取图片,第1张

vb支持的最低限度为一个字节(八位),如果你想要看二进制信息,可以将其转化为16进制显示,下面是我的代码,给你参考一下:

Dim 文件数据() As Byte, 字符数据() As String

Dim 文件长度 As Long, i As Long

Dim 文件字符串 As String

文件长度 = FileLen(路径(0))

ReDim 文件数据(1 To 文件长度)

Open 路径(0) For Binary As #1

Get #1, , 文件数据

Close #1

ReDim 字符数据(1 To 文件长度)

For i = 1 To 文件长度

字符数据(i) = Hex(文件数据(i))

Next

文件字符串 = Join(字符数据, " ")

Open 路径(1) For Output As #1

Write #1, 文件字符串

Close #1

MsgBox "转换完成"

FileDateTime 和 FileLen 是VB的内置函数 可以直接使用

如果你想获取图像的尺寸 你可以用picturebox控件设置autosize属性,然后加载图像 最后获取picturebox的长宽属性值 就可以使用你文件尺寸了。

Private Sub Form_Load()

DebugPrint Picture1ScaleWidth, Picture1ScaleHeight

End Sub

dqOpen

"Select

from

picture

where

id

like'"

&

pa

&

"'",

myconn,

1,

2

Set

Image1DataSource

=

Nothing

Set

Image1DataSource

=

dq

Image1DataField

=

"pic"

dqClose

你的二进制图像要先存入ACCESS表中,命名picture,id可以用自动编号,字段名pic

首先要连接到数据库。然后把上面的代码黏贴进去。

代码的意思是

1从picture中选择id=的打开(

作为一个记录集)

2先清空图像image1控件

3image1控件的来源是dq(这是一个记录集)

4image1控件与数据库绑定的字段名是pic

不知道是不是你想要的额。

VB6没有直接获取像素的函数,但在VB6菜单里有一个AddIn工具可以载入WinAPI函数就不一样了。在WinAPI函数里有一个GetPixel(hdc,x,y)函数,用来获取像素颜色值。

'必须在代码前加上API声明,vb就可以用了

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

'用于记录像素坐标的数组

Dim recX() As Long

Dim recY() As Long

Dim i As Long

Dim mycolor As Long

For y=0 To 100

For x=0 To 100

mycolor = GetPixel(Picture1hdc,x,y) '获取Picture控件图像里的像素颜色

If mycolor = 0 Then ' 颜色为0表示纯黑

i = i + 1

Redim Preserve recX(i)

Redim Preserve recY(i)

recX(i) = x '记住纯黑像素的x位置

recY(i) = y '记住纯黑y的位置

End If

Next x

Next y

首先新建一个EXCEL文件dataXLS,c列中文件名为对应行的文件名。其excel文档内容如下图形式:

然后在vb中新建一个Text1文本框,1个按钮,一个框Image1,如下图界面:

点击查询按钮,写入如下代码:

Private Sub Command1_Click()

Dim cn As ADODBConnection

Dim rs As ADODBRecordset

Dim sql$

 

    Set cn = New ADODBConnection

    Set rs = New ADODBRecordset

cnOpen "provider=microsoftjetoledb40;extended properties=excel 80;data source=" & AppPath & "\dataxls"      'ThisWorkbookFullName      'ThisWorkbookPath & "\" & ThisWorkbookName

    sql = "select from [Sheet1$A2:C100] where 姓名 like  '" & Text1Text & "'"

    rsOpen sql, cn, 1, 1    

    If rsRecordCount > 0 Then

   

       rsMoveFirst

       

         Image1Picture = LoadPicture(AppPath & "\pic\" & rsFields("文件名"))

            

    End If

       rsClose

    cnClose

Set cn = Nothing

   

End Sub

具体文件目录结构如下见图:

由于水平有限,上述代码基本能实现你查询功能,但细节有待优化。

你可以将先载入image控件里~设置Image1Stretch

=

True

Image1Width

Image1Height

这2个就是该实际长宽了~

以上就是关于vb怎么用二进制读取图片全部的内容,包括:vb怎么用二进制读取图片、VB如何文件目录读取图像属性宽和高的像素尺寸、怎么用vb 的image控件读取access表中的二进制图像 你知道的简便方法谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9347721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存