首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >不用后端了,前端也可以压缩图片

不用后端了,前端也可以压缩图片

作者头像
大风写全栈
发布2025-07-27 12:41:43
发布2025-07-27 12:41:43
10900
代码可运行
举报
文章被收录于专栏:锤子代码锤子代码
运行总次数:0
代码可运行

图片太大,发送失败

有个场景,需要发送图片base64给接口。

但原图转换后,base64超过1M,发送失败。

之前写过转base64,参考:

uni-app图片转换base64,看起来很难,实际一点也不简单?

于是找到了下面这个js库(感谢作者!),压缩带转base64一步完成。

image-compressor太香了谁用谁知道

安装:

代码语言:javascript
代码运行次数:0
运行
复制
npm i image-compressor

新建一个js文件,比如/compress-image/index.js:

代码语言:javascript
代码运行次数:0
运行
复制
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
}

使用:

代码语言:javascript
代码运行次数:0
运行
复制
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);
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 锤子代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档