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


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重复绑定事件造成的后果说明
Mar 02 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
Node.js中使用计时器定时执行函数详解
Aug 15 Javascript
js实现跨域的方法实例详解
Jun 24 Javascript
JS简单实现多级Select联动菜单效果代码
Sep 06 Javascript
详解vue-Resource(与后端数据交互)
Jan 16 Javascript
js正则表达式验证密码强度【推荐】
Mar 03 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
Apr 02 jQuery
动态创建Angular组件实现popup弹窗功能
Sep 15 Javascript
对Angular中单向数据流的深入理解
Mar 31 Javascript
解决vue项目axios每次请求session不一致的问题
Oct 24 Javascript
Vue如何清空对象
Mar 03 Vue.js
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实现将GB编码转换为UTF8
2006/11/25 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
php利用ZipArchive类操作文件的实例
2020/01/21 PHP
另一个javascript小测验(代码集合)
2011/07/27 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
浅谈js中用$(#ID)来作为选择器的问题(id重复的时候)
2017/02/14 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
解决html-jquery/js引用外部图片时遇到看不了或出现403的问题
2017/09/22 jQuery
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
JS实现星星海特效
2019/12/24 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
python类装饰器用法实例
2015/06/04 Python
python的keyword模块用法实例分析
2015/06/30 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
Django+uni-app实现数据通信中的请求跨域的示例代码
2019/10/12 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
HTML5 解决苹果手机不能自动播放音乐问题
2017/12/27 HTML / CSS
园林系毕业生求职信
2014/06/23 职场文书
药房管理制度范本
2015/08/06 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
详解JS数组方法
2021/11/20 Javascript
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技