vant upload 图片压缩(个人笔记)

const img = new Image()
const reader = new FileReader()// 读取文件资源
reader.readAsDataURL(file.file)
reader.onload = function(e){ 
    img.src = e.target.result
}

let canvas = document.createElement("canvas");
let context = canvas.getContext("2d");
img.onload = () => {
// 指定canvas画布大小,该大小为最后生成图片的大小
canvas.width = 1000;
canvas.height = 800;
/* drawImage画布绘制的方法。(0,0)表示以Canvas画布左上角为起点,400,300是将图片按给定的像素进行缩小。
如果不指定缩小的像素图片将以图片原始大小进行绘制,图片像素如果大于画布将会从左上角开始按画布大小部分绘制图片,最后的图片就是张局部图。*/
context.drawImage(img, 0, 0, 1000, 800);
// 将绘制完成的图片重新转化为base64编码,file.file.type为图片类型,0.92为默认压缩质量
file.content = canvas.toDataURL(file.file.type, 0.60);
// 最后将base64编码的图片保存到数组中,留待上传。
本作品采用《CC 协议》,转载必须注明作者和本文链接
写代码是一件趣事。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

建议上GitHub搜 image js库处理,压缩质量还能保障

4年前 评论
adong (楼主) 4年前
chowjiawei

intervention/image

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!