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


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中匿名函数,函数直接量和闭包
May 08 Javascript
URL地址中的#符号使用说明
Feb 12 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
Dec 16 Javascript
JS+CSS实现可拖动的弹出提示框
Feb 16 Javascript
js贪吃蛇游戏实现思路和源码
Apr 14 Javascript
Javascript基础回顾之(三) js面向对象
Jan 31 Javascript
JavaScript数组操作详解
Feb 04 Javascript
Javascript中的prototype与继承
Feb 06 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
Apr 14 Javascript
vuex存值与取值的实例
Nov 06 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 Javascript
原生js实现无缝轮播图效果
Jan 28 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小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
php unlink()函数使用教程
2018/07/12 PHP
php测试kafka项目示例
2020/02/06 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
ajax请求get与post的区别总结
2013/11/04 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
js继承的这6种方式!(上)
2019/04/23 Javascript
解决layui的radio属性或别的属性没显示出来的问题
2019/09/26 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
Python抽象类的新写法
2015/06/18 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
python使用Qt界面以及逻辑实现方法
2019/07/10 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
python tkinter之 复选、文本、下拉的实现
2020/03/04 Python
Python 字典一个键对应多个值的方法
2020/09/29 Python
Python爬虫自动化获取华图和粉笔网站的错题(推荐)
2021/01/08 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
你的自行车健身专家:FaFit24
2016/11/16 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
行政二审代理词
2015/05/25 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
暑假开始了,你的暑假学习计划写好了吗?
2019/07/04 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
纯html+css实现打字效果
2021/08/02 HTML / CSS
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers