共计 646 个字符,预计需要花费 2 分钟才能阅读完成。
目前的项目都有需要用到前端上传图片做压缩处理,结合 canvas 的 toDataURL
可以即可做简单的处理,输出格式为 base64,下边做了一个简单的封装
/**
* [imageCompress 图片压缩]
* @param {[Array]} imgSrc [传入图片地址]
* @param {Number} [width=1024] [图片需要压缩的宽度, 单位:px]
* @param {Number} [quality=1] [图片需要压缩的质量,0~1 之间]
* @return {[type]} [返回 base64 jpeg 格式图片]
*/
export function imageCompress (imgSrc, width = 1024, quality = 1) {let imgList = []
imgSrc.map(v => {let img = new Promise((resolve, reject) => {let canvas = document.createElement('canvas')
let ctx = canvas.getContext('2d')
let oImg = new window.Image()
oImg.src = v
oImg.onload = function () {let height = width / (this.naturalWidth / this.naturalHeight)
// 如果压缩的宽度大于图片自身的宽度,采取图片自身的宽度
if (this.naturalWidth Promise.resolve(res))
}
文章来源: 使用 canvas 压缩图片大小
正文完