更新记录

1.0.0(2025-10-13) 下载此版本

  • [新增] compressImage 方法

平台兼容性

uni-app(3.6.10)

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

image-utils

uni-app 图片处理工具库,支持多平台图片压缩功能。

功能特性

  • 多端兼容:H5、App、小程序

安装

# 通过 uni_modules 安装
# 将 image-utils 文件夹放入项目的 uni_modules 目录中

API 文档

compressImage(src, options?)

压缩图片的主要方法。

参数

  • src (string): 图片路径,必填
  • options (CompressOptions): 压缩选项,可选

CompressOptions

参数 类型 默认值 说明
quality 'low' \| 'medium' \| 'high' \| number 'medium' 压缩质量,数字范围 0-1
maxWidth number - 最大宽度
maxHeight number - 最大高度
format 'jpg' \| 'png' \| 'webp' 'jpg' 输出格式(仅 H5 支持)
onProgress (progress: number) => void - 进度回调,返回 0-100

返回值

返回 Promise<CompressResult>

CompressResult

属性 类型 说明
tempFilePath string 压缩后的图片路径
size number 压缩后的文件大小 (KB)
originalSize number 压缩前的文件大小 (KB)
ratio number 压缩比例 (0-1)
width number 图片宽度
height number 图片高度

使用示例

基础压缩

import { compressImage } from '@/uni_modules/image-utils';

// 选择图片并压缩
uni.chooseImage({
  count: 1,
  success: async (res) => {
    const filePath = res.tempFilePaths[0];

    try {
      const result = await compressImage(filePath);
      console.log('压缩成功:', result);
      console.log(`原始大小: ${result.originalSize}KB`);
      console.log(`压缩后: ${result.size}KB`);
      console.log(`压缩比: ${(result.ratio * 100).toFixed(1)}%`);
    } catch (error) {
      console.error('压缩失败:', error);
    }
  },
});

自定义压缩参数

const result = await compressImage(filePath, {
  quality: 0.8, // 压缩质量 80%
  maxWidth: 1200, // 最大宽度 1200px
  maxHeight: 800, // 最大高度 800px
  format: 'jpg', // 输出格式
  : (progress) => {
    // 显示压缩进度
    console.log(`压缩进度: ${progress}%`);
  },
});

质量预设

预设值 对应质量 适用场景
'low' 0.6 缩略图、头像等对质量要求不高的场景
'medium' 0.8 一般图片展示,平衡质量和大小
'high' 0.9 高质量图片,轻度压缩

平台差异

功能 H5 App 小程序
基础压缩
格式转换
进度回调
自定义质量

注意事项

  1. 文件路径: 确保传入的图片路径有效且可访问
  2. 内存管理: 处理大图片时注意内存使用,建议分批处理
  3. 格式支持: 不同平台对图片格式的支持可能有差异
  4. 权限要求: 某些平台可能需要文件访问权限

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。