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


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小tip资料
Nov 23 Javascript
js实现网站首页图片滚动显示
Feb 04 Javascript
javascript 常见功能汇总
Jun 11 Javascript
webpack中引用jquery的简单实现
Jun 08 Javascript
jQuery实例—选项卡的简单实现(js源码和jQuery)
Jun 14 Javascript
Vue响应式添加、修改数组和对象的值
Mar 20 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
微信小程序tabBar用法实例详解
Dec 04 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
这15个Vue指令,让你的项目开发爽到爆
Oct 11 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 Javascript
vue-cli 关闭热更新操作
Sep 18 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中使用Oracle数据库(1)
2006/10/09 PHP
php zend解密软件绿色版测试可用
2008/04/14 PHP
php获取linux命令结果的实例
2017/03/13 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
javascript 隐藏/显示指定的区域附HTML元素【legend】用法
2010/03/05 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
Jquery实现Div上下移动示例
2014/04/23 Javascript
jquery自定义表单验证插件
2016/10/12 Javascript
解析ajaxFileUpload 异步上传文件简单使用
2016/12/30 Javascript
使用elementUI实现将图片上传到本地的示例
2018/09/04 Javascript
Vue中 v-if/v-show/插值表达式导致闪现的原因及解决办法
2018/10/12 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
Python之自动获取公网IP的实例讲解
2017/10/01 Python
python 实现selenium断言和验证的方法
2019/02/13 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
python3+opencv生成不规则黑白mask实例
2020/02/19 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
社会保险接收函
2014/01/12 职场文书
留学推荐信怎么写
2014/01/25 职场文书
保密承诺书
2014/03/27 职场文书
2014年会策划方案
2014/05/11 职场文书
学校节能减排倡议书
2014/05/16 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android