云服务器网:购买云服务器和VPS必上的网站!

功能:微信小程序图片压缩功能的实现方法

微信小程序图片紧缩功能的实现方法微信小程序图片紧缩功能的实现方法 :1、在 wx.chooseImage 接口选择相机图片。2、在 wx.getImageInfo 接口获得图片信息。3、计算紧缩比例和终究图片的长宽。4、创建 canvas 绘制终究图片。5、在

微信小程序图片紧缩功能的实现方法

微信小程序图片紧缩功能的实现方法 :1、在 wx.chooseImage 接口选择相机图片。2、在 wx.getImageInfo 接口获得图片信息。3、计算紧缩比例和终究图片的长宽。4、创建 canvas 绘制终究图片。5、在 wx.canvasToTempFilePath 接口将画布内容导出为图片并获得图片路径。

具体操作步骤:

1、通过 wx.chooseImage 接口选择相机图片。

2、通过 wx.getImageInfo 接口获得图片信息(长宽,类型)。

3、 计算紧缩比例和终究图片的长宽。

4、创建 canvas 绘图上下文,绘制终究图片。

5. 通过 wx.canvasToTempFilePath 接口将画布内容导出为图片并获得图片路径。

代码实现以下所示:

wxml 文件

<canvascanvas-id="canvas"style="width:{{cWidth}}px;height:{{cHeight}}px;position:absolute;left:⑴000px;top:⑴000px;"></canvas>

js 文件

data:{ cWidth: 0; cHeight : 0;}

data:{cWidth:0;cHeight:0;}

</pre>

<pre>

wx.chooseImage({

count:1,//默许9

sizeType:['compressed'],//指定只能为紧缩图,首先进行一次默许紧缩

sourceType:['album','camera'],//可以指定来源是相册或相机,默许两者都有

success:function(photo){

//-----返回选定照片的本地文件路径列表,获得照片信息-----------

wx.getImageInfo({

src:photo.tempFilePaths[0],

success:function(res){

//---------利用canvas紧缩图片--------------

varratio=2;

varcanvasWidth=res.width//图片原始长宽

varcanvasHeight=res.height

while(canvasWidth>400||canvasHeight>400){//保证宽高在400之内

canvasWidth=Math.trunc(res.width/ratio)

canvasHeight=Math.trunc(res.height/ratio)

ratio++;

}

that.setData({

cWidth:canvasWidth,

cHeight:canvasHeight

})

//----------绘制图形并取出图片路径--------------

varctx=wx.createCanvasContext('canvas')

ctx.drawImage(res.path,0,0,canvasWidth,canvasHeight)

ctx.draw(false,setTimeout(function(){

wx.canvasToTempFilePath({

canvasId:'canvas',

destWidth:canvasWidth,

destHeight:canvasHeight,

success:function(res){

console.log(res.tempFilePath)//终究图片路径

},

fail:function(res){

console.log(res.errMsg)

}

})

},100))//留一定的时间绘制canvas

fail:function(res){

console.log(res.errMsg)

},

})

}

})

本文来源:https://www.yuntue.com/post/66758.html | 云服务器网,转载请注明出处!

关于作者: yuntue

云服务器(www.yuntue.com)是一家专门做阿里云服务器代金券、腾讯云服务器优惠券的网站,这里你可以找到阿里云服务器腾讯云服务器等国内主流云服务器优惠价格,以及海外云服务器、vps主机等优惠信息,我们会为你提供性价比最高的云服务器和域名、数据库、CDN、免费邮箱等企业常用互联网资源。

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注