uni保存canvas图片_uni-appH5端canvas压缩图片,并保存文件后获取文件路径

1、获取图片宽度、高度,并重置图片的宽度和高度;这里只用图片的宽度来做判断。下面代码只是一些代码片段。

uni.getImageInfo({

src: file.path,

success: function (res) {

let canvasWidth = res.width //图片原始长宽

let canvasHeight = res.height;

let base = canvasWidth/canvasHeight;

if(canvasWidth>500){

canvasWidth = 500;

canvasHeight = Math.floor(canvasWidth/base);

}

2、使用canvas重新绘制图片。

let img = new Image();

img.src = file.path; // 要压缩的图片

let canvas = document.createElement('canvas');

let ctx = canvas.getContext('2d');

canvas.width = canvasWidth;

canvas.height = canvasHeight;

// 将图片画到canvas上面 使用Canvas压缩

ctx.drawImage(img, 0, 0, canvasWidth, canvasHeight);

3、生成文件,然后下载文件,并获取到路径

canvas.toBlob(function (fileSrc) {

let imgSrc = window.URL.createObjectURL(fileSrc);//原生JS生成文件路径

uni.downloadFile({

url: imgSrc, //仅为示例,并非真实的资源

success: (resFilePath) => {

if (resFile.statusCode === 200) {

resolve(resFilePath);

}

}

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值