Skip to content

VBMAN.Image - 图片数据互转对象

概述

VBMAN.Image 提供了 Byte()Base64StdPicture 三种图片数据格式的互转功能,采用链式调用设计,一行代码即可完成复杂转换。

核心特性

  • 链式调用: 流畅的 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...").ReturnPicture

ShowTo

将图片直接显示到目标控件(链式调用)。

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 Picture1

ReturnBytes

输出为字节数组。

vb
Public Function ReturnBytes() As Byte()

示例:

vb
Dim bytes() As Byte
bytes = VBMAN.Image.Data(base64Str).ReturnBytes

ReturnBase64

输出为 Base64 字符串(不含 data: 前缀)。

vb
Public Function ReturnBase64() As String

示例:

vb
Dim b64 As String
b64 = VBMAN.Image.Data(Image1.Picture).ReturnBase64

ReturnPicture

输出为 StdPicture 对象,可直接赋给控件的 Picture 属性。

vb
Public Function ReturnPicture() As StdPicture

示例:

vb
Set Image1.Picture = VBMAN.Image.Data(base64Str).ReturnPicture

ReturnDataUri

输出为 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").ReturnDataUri

SetMimeType

手动设置 MIME 类型(链式调用)。

vb
Public Function SetMimeType(ByVal MimeType As String) As cImage

示例:

vb
VBMAN.Image.Data(bytes).SetMimeType("image/png").ReturnDataUri

ReturnMimeType

返回自动检测到的 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/png

IsValid

检查数据是否有效。

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).Post

Data URI 嵌入 HTML

vb
' 图片 → Data URI → 嵌入页面
Dim dataUri As String
dataUri = VBMAN.Image.Data(bytes).ReturnDataUri
WebBrowser1.Document.Write "<img src='" & dataUri & "'>"

详细文档

完整 API 文档请参阅: Tools/Image 文档

VB6及其LOGO版权为微软公司所有