更新记录
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 平台条件编译
showToast icon 降级处理('error' → 'none')
uni.env.USER_DATA_PATH Web 平台适配为 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 之间的相互转换。
功能
- 图片选择 → Base64:从相册或相机选择图片,自动转换为 Base64 字符串
- 文件路径 → Base64:读取本地图片文件(App)或 URL(Web),转换为 Base64
- Base64 → 临时文件:将 Base64 数据写入本地临时图片文件(App)/ 生成 blob URL(Web)
- Base64 → 相册:将 Base64 数据保存到系统相册(仅 App + 小程序)
- Base64 → 预览:直接预览 Base64 字符串对应的图片
- 图片压缩:选择图片并按设定质量压缩(仅 App + 小程序)
- 图片信息:获取图片的宽度、高度、格式等信息
- Base64 验证:检测 Base64 字符串是否为有效的图片数据,并识别格式
平台兼容
| 平台 |
选择→Base64 |
路径→Base64 |
Base64→文件 |
Base64→相册 |
压缩 |
信息 |
验证 |
| Android |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
| iOS |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
| HarmonyOS |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
| Web |
✓ |
✓ |
✓ |
- |
- |
✓ |
✓ |
| 微信小程序 |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
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>
依赖
- uni-app x(vapor 模式)
- 无外部插件依赖
更新日志
详见 changelog.md