README
图片压缩 SDK
基于 Squoosh 封装, 内置 pica
通过 resize
传参, url
支持 File
对象 或者 图片链接,
demo 页的服务端压缩需要启动项目 image-uploader
### install
npm install @gaoding/image-utils
### 启动 demo 页
npm run dev
### 打包
npm run build
Usage
// 默认导出 `Compress`
import Compress, { blobToArrayBuffer } from '@gaoding/image-utils';
const compress = new Compress(options);
compress.process({
url: '',
quality: 80,
compress: false // 默认 true,false 则不压缩
});
compress.event.on('processStart', () => {
console.log('图片开始处理');
})
compress.event.on('processing', (data) => {
console.log(data);
})
compress.event.on('processEnd', (blob) => {
console.log('图片压缩完成', blob);
})
提供以下工具
resize(data: ImageData, opts: ResizeOptions): ImageData
decodeFile(file: File): Promise<ImageData | undefined>
blobToImg(blob: Blob): Promise<HTMLImageElement | undefined>
resize
字段默认按 width
比例缩放
worker
In order to use worker, you should npm install worker-loader -D
and add worker rule for webpack on your own project.
rules: {
…,
{
test: /\.worker\.js$/,
use: { loader: 'worker-loader' }
}
}
TODO
优化打包构建
支持异步引入模块
worker 支持