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


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 上下banner替换具体实现
Nov 14 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 Javascript
Bootstrap实现默认导航栏效果
Sep 21 Javascript
vue.js学习笔记之绑定style样式和class列表
Oct 31 Javascript
js 能实现监听F5页面刷新子iframe 而父页面不刷新的方法
Nov 09 Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 Javascript
javascript触发模拟鼠标点击事件
Jun 26 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 Javascript
JS数组方法reduce的用法实例分析
Mar 03 Javascript
JavaScript正则表达式验证登录实例
Mar 18 Javascript
详解Vue+elementUI build打包部署后字体图标丢失问题
Jul 13 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处理换行符的问题 \r\n
2013/06/13 PHP
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php提交表单发送邮件的方法
2015/03/20 PHP
thinkPHP中分页用法实例分析
2015/12/26 PHP
PHP pear安装配置教程
2016/05/14 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
jQuery实现动画效果circle实例
2015/08/06 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python实现倒计时的示例
2014/02/14 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
详解如何减少python内存的消耗
2019/08/09 Python
如何理解python中数字列表
2020/05/29 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
颁奖典礼主持词
2014/03/25 职场文书
法律专业求职信
2014/05/24 职场文书
服装设计师求职信
2014/06/04 职场文书
色戒观后感
2015/06/12 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js