VBMAN.Image - 图片数据互转对象
概述
VBMAN.Image 提供了 Byte() ↔ Base64 ↔ StdPicture 三种图片数据格式的互转功能,采用链式调用设计,一行代码即可完成复杂转换。
核心特性
- 链式调用: 流畅的 API 设计,一行代码完成转换 + 输出
- 三种格式互转: 字节数组、Base64 字符串、StdPicture 对象之间自由转换
- Data URI 支持: 自动解析
data:image/jpeg;base64,...格式 - MIME 类型检测: 通过文件魔数自动识别 JPEG/PNG/GIF/BMP/WebP/ICO
- 控件直赋:
ShowTo方法直接将图片显示到 Image/PictureBox 控件 - 默认成员:
Data方法为默认成员,支持VBMAN.Image.(base64Str)简写
方法
Data
链式调用入口,接受 Byte() 数组、Base64 字符串、StdPicture 对象。为默认成员。
vb
Public Function Data(ByVal vData As Variant) As cImage示例:
vb
' 从 Base64 字符串
VBMAN.Image.Data(base64Str).ReturnPicture
' 简写法(利用默认成员)
VBMAN.Image.(base64Str).ReturnPicture
' 从字节数组
VBMAN.Image.Data(bytes).ReturnBase64
' 从 StdPicture
VBMAN.Image.Data(Image1.Picture).ReturnBase64
' Data URI 格式自动解析
VBMAN.Image.("data:image/png;base64,iVBOR...").ReturnPictureShowTo
将图片直接显示到目标控件(链式调用)。
vb
Public Function ShowTo(ByVal Target As Object) As cImage参数:
Target- 任何拥有 Picture 属性的控件对象(Image、PictureBox 等)
示例:
vb
' 一行代码显示到 Image 控件
VBMAN.Image.(base64Str).ShowTo Image1
' 显示到 PictureBox
VBMAN.Image.(bytesArr).ShowTo Picture1ReturnBytes
输出为字节数组。
vb
Public Function ReturnBytes() As Byte()示例:
vb
Dim bytes() As Byte
bytes = VBMAN.Image.Data(base64Str).ReturnBytesReturnBase64
输出为 Base64 字符串(不含 data: 前缀)。
vb
Public Function ReturnBase64() As String示例:
vb
Dim b64 As String
b64 = VBMAN.Image.Data(Image1.Picture).ReturnBase64ReturnPicture
输出为 StdPicture 对象,可直接赋给控件的 Picture 属性。
vb
Public Function ReturnPicture() As StdPicture示例:
vb
Set Image1.Picture = VBMAN.Image.Data(base64Str).ReturnPictureReturnDataUri
输出为 Data URI 格式字符串(如 data:image/jpeg;base64,...)。
vb
Public Function ReturnDataUri(Optional ByVal MimeType As String) As String参数:
MimeType- 可选,MIME 类型,省略时使用自动检测或默认image/jpeg
示例:
vb
' 自动检测 MIME
Dim uri As String
uri = VBMAN.Image.Data(bytes).ReturnDataUri
' 手动指定 MIME
uri = VBMAN.Image.Data(bytes).SetMimeType("image/png").ReturnDataUriSetMimeType
手动设置 MIME 类型(链式调用)。
vb
Public Function SetMimeType(ByVal MimeType As String) As cImage示例:
vb
VBMAN.Image.Data(bytes).SetMimeType("image/png").ReturnDataUriReturnMimeType
返回自动检测到的 MIME 类型。
vb
Public Function ReturnMimeType() As String支持检测: JPEG、PNG、GIF、BMP、WebP、ICO
示例:
vb
Dim mime As String
mime = VBMAN.Image.Data(bytes).ReturnMimeType ' image/pngIsValid
检查数据是否有效。
vb
Public Function IsValid() As Boolean示例:
vb
If VBMAN.Image.Data(base64Str).IsValid Then
VBMAN.Image.ShowTo Image1
End If综合示例
从 API 显示头像
vb
' 获取头像 Base64,一行显示
Dim resp As String
resp = VBMAN.HttpClient.SetUrl("/api/avatar").Get
VBMAN.Image.(VBMAN.Json.Decode(resp)("avatar")).ShowTo Image1图片上传
vb
' 读取图片 → Base64 → 上传
VBMAN.FileEx.OpenFile "C:\photo.jpg", "R"
Dim bytes() As Byte
bytes = VBMAN.FileEx.ReadData.ReturnBytes
VBMAN.FileEx.CloseFile
Dim json As New cJson
json("image") = VBMAN.Image.Data(bytes).ReturnBase64
json("mime") = VBMAN.Image.Data(bytes).ReturnMimeType
VBMAN.HttpClient.SetUrl("/api/upload").SetBody(json.Encode).PostData URI 嵌入 HTML
vb
' 图片 → Data URI → 嵌入页面
Dim dataUri As String
dataUri = VBMAN.Image.Data(bytes).ReturnDataUri
WebBrowser1.Document.Write "<img src='" & dataUri & "'>"详细文档
完整 API 文档请参阅: Tools/Image 文档