小程序点击图片实现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读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
表单JS弹出填写提示效果代码
Apr 16 Javascript
input 和 textarea 输入框最大文字限制的jquery插件
Oct 27 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
JS HTML5拖拽上传图片预览
Jul 18 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
Aug 08 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
原生JS实现的碰撞检测功能示例
May 18 Javascript
基于axios 解决跨域cookie丢失的问题
Sep 26 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 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
全国FM电台频率大全 - 19 广东省
2020/03/11 无线电
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
零基础搭建Node.js、Express、Ejs、Mongodb服务器及应用开发入门
2014/12/20 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
2015/01/05 Javascript
Java Mybatis框架入门基础教程
2015/09/21 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
JavaScript 计算笛卡尔积实例详解
2016/12/02 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
React Native时间转换格式工具类分享
2017/10/24 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
vue调用本地摄像头实现拍照功能
2020/08/14 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Django调用支付宝接口代码实例详解
2020/04/04 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
英国领先的在线旅游和休闲零售商:lastminute.com
2019/01/23 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
应届生找工作求职信
2014/06/24 职场文书
刑事辩护授权委托书范本
2014/10/17 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
东京审判观后感
2015/06/01 职场文书