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


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 相关文章推荐
validator验证控件使用代码
Nov 23 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 Javascript
JavaScript对象学习经验整理
Oct 12 Javascript
解决JavaScript数字精度丢失问题的方法
Dec 03 Javascript
js实现图片轮播效果
Dec 19 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
微信小程序实现留言板
Oct 31 Javascript
vue使用Proxy实现双向绑定的方法示例
Mar 20 Javascript
JavaScript实现选项卡效果的分析及步骤
Apr 16 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
Aug 06 Javascript
基于postman获取动态数据过程详解
Sep 08 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 Static关键字实用方法
2010/06/04 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
2013/09/06 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
JS实现关闭当前页而不弹出提示框的方法
2016/06/22 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
WebStorm ES6 语法支持设置&babel使用及自动编译(详解)
2017/09/08 Javascript
layui.js实现的表单验证功能示例
2017/11/15 Javascript
vue中$refs的用法及作用详解
2018/04/24 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
Vue数据绑定简析小结
2019/05/07 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
解决vue admin element noCache设置无效的问题
2019/11/12 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
跟老齐学Python之网站的结构
2014/10/24 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
Python实现二叉堆
2016/02/03 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
Python shutil模块用法实例分析
2019/10/02 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
资料员的岗位职责
2013/11/20 职场文书
《钱学森》听课反思
2014/03/01 职场文书
年度优秀员工获奖感言
2014/08/15 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书