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


Posted in Javascript onOctober 22, 2019

这篇文章主要介绍了小程序点击图片实现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;

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

Javascript 相关文章推荐
用javascript获取地址栏参数
Dec 22 Javascript
js中将具有数字属性名的对象转换为数组
Mar 06 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
Oct 16 Javascript
基于Jquery和html5实现炫酷的3D焦点图动画
Mar 02 Javascript
AngularJS  $modal弹出框实例代码
Aug 24 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
Vue中使用canvas方法总结
Feb 12 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
JS实现打字游戏
Dec 17 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
详解Vue3中对VDOM的改进
Apr 23 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 #Javascript
微信小程序实现左侧滑动导航栏
Apr 08 #Javascript
微信小程序自定义组件components(代码详解)
Oct 21 #Javascript
微信小程序实现侧边分类栏
Oct 21 #Javascript
微信小程序实现侧边栏分类
Oct 21 #Javascript
微信小程序中weui用法解析
Oct 21 #Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
Oct 21 #Javascript
You might like
我的论坛源代码(十)
2006/10/09 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP PDOStatement::fetchColumn讲解
2019/01/31 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
javascript 写的一个简单的timer
2009/07/30 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
jquery改变disabled的boolean状态的三种方法
2013/12/13 Javascript
jquery $(document).ready()和window.onload的区别浅析
2015/02/04 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
深入理解js中this的用法
2016/05/28 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
微信小程序后台持续定位功能使用详解
2019/08/23 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
2019/11/04 Javascript
[55:35]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第二场 1月22日
2021/03/11 DOTA
浅谈Python实现2种文件复制的方法
2018/01/19 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
利用python提取wav文件的mfcc方法
2019/01/09 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
python操作excel让工作自动化
2019/08/09 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
哄娃神器4moms商店:美国婴童用品品牌
2019/03/07 全球购物
会计电算化专业应届大学生求职信
2013/10/22 职场文书
初一生物教学反思
2014/01/18 职场文书
干部培训自我鉴定
2014/01/22 职场文书
服务口号大全
2014/06/11 职场文书
团日活动总结报告
2014/06/25 职场文书
2015年度党员个人总结
2015/02/14 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
基于Redission的分布式锁实战
2022/08/14 Redis
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS