图片太大,发送失败
有个场景,需要发送图片base64给接口。
但原图转换后,base64超过1M,发送失败。
之前写过转base64,参考:
uni-app图片转换base64,看起来很难,实际一点也不简单?
于是找到了下面这个js库(感谢作者!),压缩带转base64一步完成。
image-compressor太香了谁用谁知道
安装:
npm i image-compressor
新建一个js文件,比如/compress-image/index.js:
import { ImageCompressor } from 'image-compressor';
const compressFile = (file) => new Promise((resolve, reject) => {
const imageCompressor = new ImageCompressor;
const compressorSettings = {
toWidth: 100,
toHeight: 100,
mimeType: 'image/png',
mode: 'strict',
quality: 0.6,
grayScale: true,
sepia: true,
threshold: 127,
vReverse: true,
hReverse: true,
speed: 'low'
};
imageCompressor.run(file, compressorSettings, (result) => {
resolve({result})
});
})
export {
compressFile
}
使用:
import { compressFile } from '/compress-image/index.js';
// path.path是文件路径,类似: blob:http://192.168.0.7/1234-6661-6660-6666-6666-6666
const fileCompress = await compressFile(path.path);
// fileCompress是base64文本.
console.log(fileCompress);