麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 小程序 > 正文

微信小程序繪制圖片發送朋友圈

2020-03-21 15:50:48
字體:
來源:轉載
供稿:網友

本文實例為大家分享了微信小程序繪制圖片發送朋友圈的具體代碼,供大家參考,具體內容如下

這種生成圖片的效果是很常見的,實現起來也不難,跟原生js的差不多。需要注意的就是canvas標簽上不要加太多的css,后果呢就是導致canvas不顯示,還有呢就是canvas組件的優先級是最高的,所以會覆蓋掉下面的所有內容,解決方法呢就是使用:

微信小程序,圖片,朋友圈

使用上面這兩個組件是可以蓋在canvas上面的。

注意:canvas繪制不支持網絡圖片,需要將網絡圖片保存成本地圖片

 onLoad: function(options) {    var grade = options.grade;    this.setData({      grade: grade    })    this.loading();   },  //檢測,網絡圖片是否下載完成  loading: function() {    var _this = this;    wx.showLoading({      title: '生成中...',    })    timer = setInterval(function() {      var avatarUrl = _this.data.avatarUrl;      var qc_code = _this.data.qc_code;      if (avatarUrl != null && qc_code != null) {        wx.hideLoading();        clearInterval(timer);        _this.draw();      }    }, 500)  },  //保存到相冊  saveImage: function() {    var imagePath = this.data.imagePath;    wx.saveImageToPhotosAlbum({      filePath: imagePath,      success: function(res) {        console.log(res)      },      fail: function(res) {        console.log(res)      }    })   },  //將用戶頭像下載為本地路徑  downImage: function(img) {    var _this = this;    wx.getImageInfo({      src: img,      success: function(res) {        console.log(res.path)        _this.setData({          avatarUrl: res.path        })       }    })  },  //下載小程序二維碼  downImage2: function (img) {    var _this = this;    wx.getImageInfo({      src: img,      success: function (res) {        console.log(res.path)        _this.setData({          qc_code: res.path        })       }    })  },  //生成canvas圖片  draw: function() {    var _this = this;    var context = wx.createCanvasContext('firstCanvas');    var userInfo = wx.getStorageSync('userInfo');    var award ;    // 性別    var gender = userInfo.gender;    //背景圖片    var bg = '../../images/icon-cj.png';    //得分    var grade = 0 ^ _this.data.grade;    var width;    var height;    if (grade >= 0 && grade <= 30) {      if(gender == 2){        award = '../../images/zbzxlp.png';      }else{        award = '../../images/zbzxlg.png';      }    }else if(grade >= 31 && grade <= 60){      if (gender == 2) {        award = '../../images/zklp.png';      } else {        award = '../../images/zklg.png';      }    } else if (grade >= 61 && grade <= 80){      if (gender == 2) {        award = '../../images/zmlp.png';      } else {        award = '../../images/whlg.png';      }    }else{      if (gender == 2) {        award = '../../images/wmlp.png';      } else {        award = '../../images/wmlg.png';      }    }      if (award == '../../images/zbzxlp.png' || award == '../../images/zbzxlg.png'){      width = 156;      height= 25;    }else{      width = 103;      height = 25;    }      //二維碼    var qc_code = _this.data.qc_code;    // 用戶頭像    var avatarUrl = _this.data.avatarUrl;    //獲取設備的基本信息    wx.getSystemInfo({      success: function(res) {        //繪制背景圖        context.drawImage(bg, 0, 0, 350, 468);        // 繪制獎項        context.drawImage(award,180 - (width / 2),212 - (height / 2),width,height);        //繪制二維碼        context.drawImage(qc_code, 175 - (92 / 2), 385 - (108 / 2), 92, 107);        //繪制得分        context.setFontSize(28); //字體大小        context.fillStyle = '#4fc089';        context.setTextAlign('center')        context.fillText(grade, 177, 48)        // 繪制姓名        context.setFontSize(16);        context.fillStyle = '#000000';        context.setTextAlign('center')        context.fillText(userInfo.nickName, 167, 180);        // 繪制頭像        context.drawImage(avatarUrl, 72, 157, 33, 33);         context.draw(false, function() {          setTimeout(function() {            wx.canvasToTempFilePath({              width: 350,              height: 468,              destWidth: 700,              destHeight: 936,              canvasId: 'firstCanvas',              success: function(res) {                var tempFilePath = res.tempFilePath;                console.log("圖片"+tempFilePath);                _this.setData({                  imagePath: tempFilePath,                  isCanvas: true                });                _this.upload(tempFilePath);               },              fail: function(res) {                console.log(res);              }            });          }, 1000);        });      },    })  },

因為我的項目需要,我上面做個很多判斷,那些東西不需要管,重點就是,繪制圖片drawimage方法 和繪制文字的方法,我的繪制方法是讓他們根據canvas上的一個坐標點居中繪制的,這個可以看一下。

還有就是,生成圖片的尺寸要比畫的尺寸大一倍,這樣圖片不會失真,比較清楚,也就是這個方法:

wx.canvasToTempFilePath() 前兩個參數是canvas的大小,然后是生成圖片的大小,canvas的ID

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美一级黄色免费看 | 在线看成人av | 久久久麻豆| 欧美成人影院 | 亚洲一区成人在线 | 日本中文高清 | 欧美中文在线 | 亚洲乱码精品久久久久 | 欧美性生活视频免费看 | 一级在线 | 草久在线观看视频 | 福利在线小视频 | 美女在线视频一区二区 | 久久精品视频一区二区三区 | 欧美xxxx精品另类 | 久久久一区二区三区视频 | 久久久午夜电影 | 亚洲天堂午夜 | 福利在线小视频 | 美女很黄很黄免费的 | 成年免费看 | 欧美人xxx| 久章草在线视频 | 成人做爰高潮片免费视频美国 | 久久精品久久久久 | 日本视频免费观看 | 99精品国产在热久久婷婷 | 黄色免费影片 | 在线a亚洲视频播放在线观看 | 1级毛片在线观看 | www.99xxxx.com| av手机在线免费播放 | 久久影院一区二区三区 | 国产午夜精品一区二区三区四区 | 中国黄色一级生活片 | 在线播放av片 | 久草在线视频首页 | 欧美成人激情在线 | 九九热九九热 | 91成人免费在线观看 | aa国产视频一区二区 |