JavaScript

超轻量级php框架startmvc

小程序点击图片实现png转jpg

更新时间:2020-09-18 14:18:01 作者:startmvc
这篇文章主要介绍了小程序点击图片实现png转jpg,文中通过示例代码介绍的非常详细,对大

这篇文章主要介绍了小程序点击图片实现png转jpg,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

页面数据初始化添加参数:isSignCanvassShow<br><br>//通过canvas将图片转为jpg,使图片生成白色底便于查看预览


//list为原图片数组列表,index表示当前图片下标,
//imgList表示已经通过canvas转化的图片列表
 trasformImgType(list,index,imgList){
 this.setData({
 isSignCanvasShow:true
 });
 index=index?index:0;
 const that=this;
 let img=list[index].fileUrl;
 img=img.replace(/http/,'https');
 tip.loading('正在打开图片');
 //获取图片信息,
 wx.getImageInfo({
 src: img,
 success (res) {
 //画入canvas
 const context = wx.createCanvasContext('picCanvas');
 that.resetCanvas(context);
 context.drawImage(res.path,0, 0);
 context.draw(false,function(drawed){
 // console.log(drawed);
 wx.canvasToTempFilePath({
 x: 0,
 y: 0,
 width: 414,
 height: 300,
 destWidth: 414,
 destHeight:300,
 fileType: 'jpg',
 canvasId: 'picCanvas',
 success(imgRes) {
 tip.loaded();
 imgList.push(imgRes.tempFilePath);
 if(index<list.length-1){
 that.trasformImgType(list,index+1,imgList)
 return;
 }
 that.setData({
 isSignCanvasShow:false
 })
 wx.previewImage({
 current: '', //图标当前下标
 urls: imgList, // 需要预览的图片http链接列表
 fail:function(res){
 tip.alert('图片过期需刷新');
 },
 })
 },
 fail() {
 that.setData({
 isSignCanvasShow:false
 })
 tip.loaded();
 tip.alert('图片过期需刷新');
 }
 })
 } )
 }
 })
 }, 
 //重绘画板
 resetCanvas(context){
 context.rect(0, 0, this.data.screenWidth, this.data.screenHeight - 4); //画板大小
 context.setFillStyle('#fff');//背景填充
 context.fill() //设置填充
 context.draw() //开画
 
 },

wxml文件需要添加如下代码:


<view hidden="{{!isSignCanvasShow}}">
  <canvas canvas-id="picCanvas" id='picCanvas' class="pic-canvas" ></canvas>
</view>

方法解释:

通过wx.previewImage预览图片时,会出现格式为png预览背景为黑色时,图片查看不清楚,能过下面的方法转化为白色底,方便查看

1、先用wx.getImageInfo 下载图片到本地,并且获取图片的信息;

2、将图片画入canvas,并生成临时图片地址;

3、将canvas生成的地址填写入imgList缓存起来;

4、当所有图片都转化完成之后,调用wx.previewImage查看图片

5、每次转化完一片图片的时候,就重新绘制一下canvas;

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

小程序 图片 png转jpg