vb 转换图片二进制数组

'假设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")


出处:http://bbs.bccn.net/thread-248470-1-1.html

<< 在 Visual Basic 6 (VB6) 中,将字符串转换二进制数组的操作可以通过以下几种方法实现。这里介绍一种常见的做法:使用 `StrConv` 函数配合循环遍历每个字符并将其 ASCII 或 Unicode 值存入字节数组。 ### 方法一:使用 StrConv 函数 `StrConv` 是 VB6 内置的一个非常方便的函数,它可以轻松地在不同类型的编码之间进行转换,包括从字符串到字节序列的转换。 #### 示例代码: ```vb Function StringToByteArray(strInput As String) As Byte() ' 使用 StrConv 将字符串转换成 UTF-8 编码的字节数组 StringToByteArray = StrConv(strInput, vbFromUnicode) End Function Sub TestStringToByteArray() Dim strOriginal As String Dim byteArray() As Byte strOriginal = "HelloWorld" ' 调用函数将字符串转为二进制数组 byteArray = StringToByteArray(strOriginal) ' 打印出各个元素验证结果 Debug.Print "Byte Array Content:" For i = LBound(byteArray) To UBound(byteArray) Debug.Print byteArray(i); Next i End Sub ``` 在这个例子中,我们定义了一个名为 `StringToByteArray` 的辅助函数来封装具体的逻辑,并通过调用该函数演示了如何把简单的字符串 `"HelloWorld"` 变换为相应的字节数组。注意,默认情况下,`StrConv` 返回的是 ANSI 格式的字节数组;如果希望支持多语言文字,则应该指定合适的字符集类型(例如 `vbUnicode` 或其他特定于区域性的编码)。 ### 方法二:手动逐个字符读取并构建字节数组 对于某些特殊情况或特殊需求时,您也可以选择不依赖内建工具而是自己编写代码来进行这种转变。这种方式提供了更大的灵活性但同时也增加了复杂度。 #### 示例代码: ```vb Function ManualStringToByteArray(strInput As String) As Byte() Dim idx As Integer Dim lenStr As Long Dim result() As Byte lenStr = LenB(StrConv(strInput, vbFromUnicode)) ReDim result(lenStr - 1) For idx = 0 To lenStr - 1 Step 2 result(idx \ 2) = Asc(Mid$(strInput, idx / 2 + 1, 1)) Next idx ManualStringToByteArray = result End Function Sub TestManualStringToByteArray() Dim strOriginal As String Dim byteArray() As Byte strOriginal = "HelloWorld" ' 调用手动编写的函数将字符串转为二进制数组 byteArray = ManualStringToByteArray(strOriginal) ' 打印出各个元素验证结果 Debug.Print "Byte Array Content:" For i = LBound(byteArray) To UBound(byteArray) Debug.Print byteArray(i); Next i End Sub ``` 这种方法是直接利用 VBA/VBScript 提供的基础运算符和语句构造所需的输出形式。它适用于那些对性能敏感的应用场合以及当默认的方法无法满足特定业务规则的要求时作为替代方案之一。 无论哪种方式都实现了相同的目标——即把原始的文本信息转化为适合进一步处理的形式,具体选用哪一类取决于您的项目背景和个人偏好等因素影响。如果您只需要快速高效地完成任务而不必追求极致优化的话,建议优先尝试第一种更为简洁明了的办法即可!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值