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


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 相关文章推荐
JS模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
JS setCapture 区域外事件捕捉
Mar 18 Javascript
jquery $.ajax()取xml数据的小问题解决方法
Nov 20 Javascript
js异步加载的三种解决方案
Mar 04 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
Bootstrap禁用响应式布局的实现方法
Mar 09 Javascript
基于JavaScript实现图片连播和联级菜单实例代码
Jul 28 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
Jul 01 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
Sep 11 Javascript
js 判断当前时间是否处于某个一个时间段内
Sep 19 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 Javascript
antd-DatePicker组件获取时间值,及相关设置方式
Oct 27 Javascript
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
php获取post中的json数据的实现方法
2011/06/08 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
php的4种常用运行方式详解
2016/12/22 PHP
php使用正则表达式获取字符串中的URL
2016/12/29 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
详解使用webpack打包编写一个vue-toast插件
2017/11/08 Javascript
JavaScript实现微信红包算法及问题解决方法
2018/04/26 Javascript
解决vue同一slot在组件中渲染多次的问题
2018/09/06 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
在Python中使用元类的教程
2015/04/28 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
对Python实现累加函数的方法详解
2019/01/23 Python
学习python的前途 python挣钱
2019/02/27 Python
使用Python3内置文档高效学习以及官方中文文档
2019/05/19 Python
python数据挖掘需要学的内容
2019/06/23 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
Python类super()及私有属性原理解析
2020/06/15 Python
python 实现有道翻译功能
2021/02/26 Python
独特的礼品和创新的科技产品:The Grommet
2018/02/24 全球购物
非常详细的C#面试题集
2016/07/13 面试题
租房合同协议书
2014/04/09 职场文书
社区服务标语
2014/07/01 职场文书
委托书怎么写
2014/07/31 职场文书
运动会广播稿200字
2014/10/18 职场文书
党的群众路线教育实践活动个人对照检查材料(乡镇)
2014/11/05 职场文书
农村党员干部承诺书
2015/05/04 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript