微信小程序实现张图片合成为一张并下载


Posted in Javascript onJuly 16, 2019

本文实例为大家分享了微信小程序实现张图片合成为一张并下载的具体代码,供大家参考,具体内容如下

微信小程序海报

Page({

 /**
 * 页面的初始数据
 */
 data: {
 imgUrl: "项目中图片地址", //图片链接
 img: '' // 合成后图片路径
 },

 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 let that = this;
 wx.downloadFile({
  url: '线上图片地址',
  success(res) {
  // 绘制背景海报到canvas
  var postersize = that.setCanvasSize(750);//动态设置画布大小
  const ctx = wx.createCanvasContext('shareCanvas')
  ctx.drawImage(that.data.imgUrl, 0, 0, postersize.w, postersize.h)

  var re = wx.getSystemInfoSync();
  var scale = 750 / 180;
  var width = re.windowWidth / scale;
  var height = width
  var leftscale = 750 / 480; // 180为left
  var left = re.windowWidth / leftscale;
  var topscale = 750 / 880; // 180为top
  var top = re.windowWidth / topscale;
  ctx.drawImage(res.tempFilePath, left, top, width, height)
  ctx.draw()

  setTimeout(() => {
   // code_url = this.canvasToTempImage(); 
   //获取临时缓存合成照片路径,存入data中
   wx.canvasToTempFilePath({
   canvasId: 'shareCanvas',
   success: function (res) {
    var tempFilePath = res.tempFilePath;
    that.setData({
    img: tempFilePath
    })
    console.log(tempFilePath)
   },
   fail: function (res) {
    console.log(res);
   }
   });
  }, 1000);

  }
 })


 
 },

 /**
 * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {
 
 },

 /**
 * 生命周期函数--监听页面显示
 */
 onShow: function () {
 
 },

 /**
 * 生命周期函数--监听页面隐藏
 */
 onHide: function () {
 
 },

 /**
 * 生命周期函数--监听页面卸载
 */
 onUnload: function () {
 
 },

 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
 
 },

 /**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function () {
 
 },

 /**
 * 用户点击右上角分享
 */
 onShareAppMessage: function () {
 
 },
 //适配不同屏幕大小的canvas
 setCanvasSize: function (width) {
 var size = {};
 try {
  var res = wx.getSystemInfoSync();
  var scale = 750 / width;//不同屏幕下canvas的适配比例;设计稿是750宽
  // var scale = 1
  var width = res.windowWidth / scale;
  var height = res.windowHeight / scale;;
  size.w = width;
  size.h = height;
 } catch (e) {
  // Do something when catch error
  console.log("获取设备信息失败" + e);
 }
 return size;
 },
 //点击图片进行预览,长按保存分享图片
 previewImg: function (e) {
 var img = this.data.img;
 let _this = this;
 //保存二维码到相册

 wx.saveImageToPhotosAlbum({
  filePath: img,
  success: function (res) {
  wx.showModal({
   content: '保存成功',
   confirmText: '确认',
   showCancel: false,
   success: function (res) {

   }
  });
  },
  fail: function (res) {
  wx.showModal({
   content: '保存失败',
   confirmText: '确认',
   showCancel: false,
   success: function (res) {

   }
  });
  }
 })
 },
 
})

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

Javascript 相关文章推荐
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
Jan 18 Javascript
js实现用户注册协议倒计时的方法
Jan 21 Javascript
js实现使用鼠标拖拽切换图片的方法
May 04 Javascript
对Js OOP编程 创建对象的一些全面理解
Jul 26 Javascript
原生js实现简单的Ripple按钮实例代码
Mar 24 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
Jun 14 Javascript
shiro授权的实现原理
Sep 21 Javascript
ligerUI---ListBox(列表框可移动的实例)
Nov 28 Javascript
JS中的事件委托实例浅析
Mar 22 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
Apr 01 jQuery
JQuery实现简单的复选框树形结构图示例【附源码下载】
Jul 16 #jQuery
JS实现的排列组合算法示例
Jul 16 #Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
Jul 16 #Javascript
详解微信小程序支付流程与梳理
Jul 16 #Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 #Javascript
JAVA面试题 static关键字详解
Jul 16 #Javascript
微信小程序实现下拉框功能
Jul 16 #Javascript
You might like
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
yii添删改查实例
2015/11/16 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
JQuery下关于$.Ready()的分析
2009/12/13 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
用Javascript评估用户输入密码的强度(Knockout版)
2011/11/30 Javascript
js获取单选框或复选框值及操作
2012/12/18 Javascript
jquery DIV撑大让滚动条滚到最底部代码
2013/06/06 Javascript
javascript阻止scroll事件多次执行的思路及实现
2013/11/08 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
html+js+highcharts绘制圆饼图表的简单实例
2016/08/04 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
JS实现的文件拖拽上传功能示例
2018/05/21 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
js+canvas实现图片格式webp/png/jpeg在线转换
2020/08/22 Javascript
[46:27]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#2LGD VS MVP.Phx第一局
2016/03/02 DOTA
Python 的 Socket 编程
2015/03/24 Python
利用python批量检查网站的可用性
2016/09/09 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
Python图像处理之图片文字识别功能(OCR)
2019/07/30 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
小学母亲节活动方案
2014/03/14 职场文书
委托书格式
2014/08/01 职场文书
会计求职自荐信
2015/03/26 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
CSS作用域(样式分割)的使用汇总
2021/11/07 HTML / CSS