更新记录

1.0.0(2026-10-11)

  • 首次发布。
  • 新增 compressImage 图片压缩接口,支持质量压缩与等比尺寸缩放。
  • 支持 Android / iOS / Web / HarmonyOS 四端。
  • 支持 jpg / png 输出格式,quality 参数仅对 jpg 生效。
  • 统一错误码:9010001 参数错误、9010002 读取失败、9010003 解码失败、9010004 编码保存失败、9010005 平台不支持。

平台兼容性

uni-app(5.0)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
√ √ √ √ √ √ √ √ √
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
× × - - - - - - - - - -

uni-app x(5.0)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ √ √ √ √ ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

hy-image-compress 图片压缩

跨平台图片压缩 UTS 插件,基于各端原生能力实现质量压缩与尺寸缩放,同一套 API 适配 Android / iOS / Web / HarmonyOS。

平台支持

平台 支持 实现方式
Android √ BitmapFactory + Bitmap.compress
iOS √ ImageIO + UIGraphicsImageRenderer
Web √ Canvas + toBlob / toDataURL
HarmonyOS √ @ohos.multimedia.image (ImageSource / ImagePacker)

小程序端暂不支持。 iOS 需在 macOS 环境下编译验证。

安装

将 hy-image-compress 目录放入项目的 uni_modules 下即可,无需手动注册(uni_modules 自动引入)。

使用

uni-app x

import { compressImage } from '@/uni_modules/hy-image-compress'

compressImage({
  src: tempFilePath,
  quality: 80,
  maxWidth: 1280,
  maxHeight: 1280,
  format: 'jpg',
  success: (res) => {
    console.log('压缩成功', res.tempFilePath, res.size, res.width, res.height)
  },
  fail: (err) => {
    console.error('压缩失败', err.errCode, err.errMsg)
  },
  complete: (res) => {
    console.log('调用结束', res)
  }
})

uni-app (Vue2 / Vue3)

import { compressImage } from '@/uni_modules/hy-image-compress'

compressImage({
  src: tempFilePath,
  quality: 80,
  maxWidth: 1280,
  maxHeight: 1280,
  format: 'jpg',
  success(res) {},
  fail(err) {},
  complete(res) {}
})

API

compressImage(options)

压缩图片。

参数 类型 必填 说明
src string 是 待压缩图片路径。App / 鸿蒙支持本地路径、临时文件路径(file:// 开头);Web 支持网络地址、blob/objectURL、base64 dataURL
quality number 否 压缩质量,取值 0-100,默认 80,仅对 jpg 生效
maxWidth number 否 压缩后最大宽度(px),≤0 或不传表示不限制
maxHeight number 否 压缩后最大高度(px),≤0 或不传表示不限制
format string 否 输出格式,'jpg'(默认)或 'png'
success function 否 成功回调
fail function 否 失败回调
complete function 否 结束回调(成功、失败均执行)

成功回调 res

字段 类型 说明
tempFilePath string 压缩后图片路径(Web 为 objectURL / dataURL)
size number 压缩后文件大小(字节)
width number 压缩后宽度(px)
height number 压缩后高度(px)
originalSize number 压缩前文件大小(字节)
originalWidth number 原始宽度(px)
originalHeight number 原始高度(px)

错误码

errCode 说明
9010001 参数错误
9010002 图片读取失败(文件不存在或无法访问)
9010003 图片解码失败
9010004 图片编码或保存失败
9010005 当前平台不支持该能力

缩放规则

  • 等比缩放,只缩小不放大;
  • 同时设置 maxWidth、maxHeight 时,取能满足两个限制的最小比例;
  • 宽高均为限制值以内时保持原尺寸,仅做质量压缩。

注意事项

  • quality 仅对 jpg 生效,png 为无损压缩,忽略该参数。
  • App / 鸿蒙端返回的 tempFilePath 为应用缓存目录下的临时文件,如需长期保留请自行转存。
  • 鸿蒙端图片编码为异步接口,回调为异步触发。
  • 未配置鸿蒙应用包名与签名证书时,仅能编译打包,无法安装到设备运行。

更新日志

见 changelog.md

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

暂无用户评论。