微信小程序点击保存图片到本机功能


Posted in Javascript onDecember 13, 2019

微信小程序点击保存图片到本机功能

1.首先我们要把想保存的图片绘制在画布上

<view class='container'>
 <canvas style='width:{{canvasWidth}}px; height:{{canvasHeight}}px' class="canvas" id="canvas" canvas-id="canvas" disable-scroll="true">
 </canvas>
 <button bindtap='clickMe'>保存图片</button>
</view>

2.我们在看看看js代码在用wx.canvasToTempFilePath方法会返回一个tempFilePath图片路径

// canvas 全局配置
var context = null;
var rpx
var posterHeight = 0
var posterWidth = 0
var avatarPadding = 0 //距离边界
var avatarRadiu = 0 //头像半径
var textScale = 0 //文字比例
 
//注册页面
Page({
 
 data: {
  img: "../../images/img1.jpg",
  myCanvasWidth: 0,
  myCanvasHeight: 0,
  posterHeight: 0,
 },
 
 onLoad: function (options) {
  var that = this
  var myCanvasWidth = that.data.myCanvasWidth  //为了让图片满铺页面
  var myCanvasHeight = that.data.canvasHeight
  context = wx.createCanvasContext('canvas');
 
  wx.getSystemInfo({
   success: function (res) {
    myCanvasWidth = res.screenWidth
    myCanvasHeight = res.screenHeight
    posterWidth = Math.round(res.screenWidth * 0.68) //计算让画布图片自适应
    posterHeight = Math.round(posterWidth * 1920 / 1080)
    avatarPadding = Math.round(posterWidth * 20 / 375)
    avatarRadiu = Math.round(posterWidth * 25 / 375)
    textScale = Math.round(posterWidth / 375)
    rpx = res.windowWidth / 375;
    that.setData({
     myCanvasWidth: myCanvasWidth,
     myCanvasHeight: myCanvasHeight,
     posterHeight: posterHeight
    })
    context.drawImage(that.data.img, 0, 0, that.data.myCanvasWidth, that.data.myCanvasHeight); //画布绘制图片
    context.draw();
 
   },
  })
 },
 clickMe: function () { //保存图片
  wx.canvasToTempFilePath({
   canvasId: 'canvas',
   fileType: 'jpg',
   success: function (res) {
    console.log(res)
    wx.saveImageToPhotosAlbum({
     filePath: res.tempFilePath,
     success(res) {
      console.log(res)
      wx.hideLoading();
      wx.showToast({
       title: '保存成功',
      });
      // //存入服务器
      // wx.uploadFile({
      //  url: 'a.php', //接口地址
      //  filePath: res.tempFilePath,
      //  name: 'file',
      //  formData: {                 //HTTP 请求中其他额外的 form data 
      //   'user': 'test'
      //  },
      //  success: function (res) {
      //   console.log(res);
 
      //  },
      //  fail: function (res) {
      //   console.log(res);
      //  },
      //  complete: function (res) {
      //  }
      // });
     },
     fail() {
      wx.hideLoading()
     }
    })
   }
  })
 },
})

3,css样式 直接给画布设置高度宽度就可以 图片会铺满屏幕

总结

以上所述是小编给大家介绍的微信小程序点击保存图片到本机功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
基于jquery的回到页面顶部按钮
Jun 27 Javascript
jquery如何改变html标签的样式(两种实现方法)
Jan 16 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
学习JavaScript设计模式之策略模式
Jan 12 Javascript
js实现简单的省市县三级联动效果实例
Feb 18 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
AngularJS解决ng-if中的ng-model值无效的问题
Jun 21 Javascript
详细分析单线程JS执行问题
Nov 22 Javascript
VueCli3.0中集成MockApi的方法示例
Jul 05 Javascript
JavaScript变量基本使用方法实例分析
Nov 15 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 #Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
Dec 13 #Javascript
vue中使用elementUI组件手动上传图片功能
Dec 13 #Javascript
使用uni-app开发微信小程序的实现
Dec 13 #Javascript
webpack DllPlugin xxx is not defined解决办法
Dec 13 #Javascript
微信小程序关键字变色实现代码实例
Dec 13 #Javascript
Servlet返回的数据js解析2种方法
Dec 12 #Javascript
You might like
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
拖动一个HTML元素
2006/12/22 Javascript
JavaScript 函数调用规则
2009/09/14 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
jquery.jstree 增加节点的双击事件代码
2010/07/27 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python列表切片常用操作实例解析
2020/03/10 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
django跳转页面传参的实现
2020/09/17 Python
python搜索算法原理及实例讲解
2020/11/18 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
解决python3输入的坑——input()
2020/12/05 Python
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
linux面试题参考答案(7)
2014/07/24 面试题
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
党员承诺践诺书
2014/05/20 职场文书
复兴之路展览观后感
2015/06/02 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
2019银行竞聘书
2019/06/21 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python