更新记录
1.0.1(2026-08-06) 下载此版本
UTS 跨平台兼容修复
interface→type:组件 Props 定义改用type替代interface,避免 Android/iOS 原生编译时 Kotlin/Swift 报错defineEmits<...>()泛型 → 数组形式:defineEmits(['convert-success', 'convert-error']),兼容 UTS 原生编译器===→==:脚本中所有严格相等替换为宽松相等,符合 UTS 跨平台规范!==→!=:typeof result !== 'string'→typeof result != 'string'- 可选链
?.替换:err?.errMsg→(err != null && err.errMsg != null),避免可选链在 UTS 原生编译中的兼容风险 - 非空断言
!替换:match[1]!→match[1] as string,使用类型断言替代非空断言 - 空安全加固:所有
err.errMsg访问前增加err != null判断,防止 null 指针异常
1.0.0(2026-08-04) 下载此版本
Web 平台适配
- 选择→Base64:修复 H5 平台
imageFileToBase64因getFileSystemManager().readFile()不支持 Web 导致的失败。新增#ifdef WEB分支,使用浏览器原生fetch()+FileReader读取 blob URL 并转为 base64。 - Base64→临时文件:修复 H5 平台
base64ToTempFile因getFileSystemManager().writeFile()不支持 Web 导致的失败。新增#ifdef WEB分支,使用Blob+URL.createObjectURL()生成临时 blob URL。
功能优化
- 复制按钮:修复点击"复制"时复制的是截断后的 100 字符而非完整 base64 的问题。新增
fullBase64存储完整值,复制时优先使用。 - 用户取消处理:
handleChooseToBase64中增加取消检测——用户关闭文件选择弹窗时静默返回,不再弹出错误 toast。 - 错误日志:catch 块增加
console.error输出完整错误对象,方便调试。
Vapor 兼容性
- 组件文件重命名:
.vue→.uvue - 所有
rpx单位替换为px(2:1 换算) - 后代选择器改为独立 class 绑定
word-break: break-all→white-space: break-spaces- 移除
as const,改为显式类型声明 - Props 接口属性去可选化
handleBase64ToAlbum加#ifdef平台条件编译showToasticon 降级处理('error'→'none')uni.env.USER_DATA_PATHWeb 平台适配为uni.env.CACHE_PATH
平台兼容性
uni-app(5.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
uni-app x(5.0)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
jack-image-converter
跨平台图像转换组件,支持图片与 Base64 之间的相互转换。已适配 uni-app x UTS 原生编译规范(Android / iOS / Harmony)。
功能
- 图片选择 → Base64:从相册或相机选择图片,自动转换为 Base64 字符串
- 文件路径 → Base64:读取本地图片文件(App)或 URL(Web),转换为 Base64
- Base64 → 临时文件:将 Base64 数据写入本地临时图片文件(App)/ 生成 blob URL(Web)
- Base64 → 相册:将 Base64 数据保存到系统相册(仅 App + 小程序)
- Base64 → 预览:直接预览 Base64 字符串对应的图片
- 图片压缩:选择图片并按设定质量压缩(仅 App + 小程序)
- 图片信息:获取图片的宽度、高度、格式等信息
- Base64 验证:检测 Base64 字符串是否为有效的图片数据,并识别格式(PNG/JPEG/GIF/WebP/BMP)
平台兼容
| 平台 | 选择→Base64 | 路径→Base64 | Base64→文件 | Base64→相册 | 压缩 | 信息 | 验证 |
|---|---|---|---|---|---|---|---|
| Android | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| iOS | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| HarmonyOS | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Web | ✓ | ✓ | ✓ | - | - | ✓ | ✓ |
| 微信小程序 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Web 平台说明: 浏览器不支持本地文件系统 API(
getFileSystemManager),"路径→Base64" 通过fetch读取 URL,"Base64→临时文件" 通过Blob+URL.createObjectURL生成。压缩和相册保存仅限 App/小程序平台。
使用方式
easycom 自动注册
在 uni-app x 项目中,uni_modules 下的组件会自动注册,无需手动 import:
<template>
<jack-image-converter />
</template>
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| title | string | "图片转换工具" | 组件标题 |
| showTabChoose | boolean | true | 显示"选择→Base64"选项卡 |
| showTabFile | boolean | true | 显示"路径→Base64"选项卡 |
| showTabBase64 | boolean | true | 显示"Base64→图片"选项卡 |
| showTabTools | boolean | true | 显示"工具集"选项卡 |
Events
| 事件 | 参数 | 说明 |
|---|---|---|
| @convert-success | { type: string, result: string } | 转换成功时触发 |
| @convert-error | { type: string, error: string } | 转换失败时触发 |
使用示例
<template>
<jack-image-converter
:showTabChoose="true"
:showTabFile="true"
:showTabBase64="true"
:showTabTools="true"
@convert-success="onSuccess"
@convert-error="onError"
/>
</template>
<script setup lang="uts">
const onSuccess = (data: { type: string, result: string }) => {
console.log('转换成功:', data.type)
}
const onError = (data: { type: string, error: string }) => {
console.error('转换失败:', data.type, data.error)
}
</script>
工具模块(utils/image-converter.uts)
组件内部使用的纯函数工具模块,也可单独导入使用:
import {
imageFileToBase64, // 文件路径 → Base64
chooseImageToBase64, // 选择图片 → Base64
base64ToTempFile, // Base64 → 临时文件
base64ToDataUri, // Base64 → data: URI
stripDataUriPrefix, // 去除 data URI 前缀
detectImageFormat, // 魔数检测图片格式
isValidImageBase64, // 验证 Base64 有效性
getImageInfo, // 获取图片信息
getFormatFromPath // 路径推断格式
} from '@/uni_modules/jack-image-converter/utils/image-converter'
格式检测支持的格式:png、jpg、gif、webp、bmp,未知格式返回 unknown,非法数据返回 invalid。
依赖
- uni-app x(Vapor 模式)
- 无外部插件依赖
更新日志
详见 changelog.md

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 5364
赞赏 4
下载 12630799
赞赏 1950
赞赏
京公网安备:11010802035340号