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


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 相关文章推荐
javascript 动态数据下的锚点错位问题解决方法
Dec 24 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
Mar 21 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
Feb 14 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
vue 项目build错误异常的解决方法
Apr 22 Javascript
echarts统计x轴区间的数值实例代码详解
Jul 07 Javascript
微信小程序实现拍照画布指定区域生成图片
Jul 18 Javascript
Vue2.0实现简单分页及跳转效果
Jul 29 Javascript
PHP 502bad gateway原因及解决方案
Nov 13 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
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
javascript 继承实现方法
2009/08/26 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
jquery根据属性和index来查找属性值并操作
2014/07/25 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
每天一篇javascript学习小结(Array数组)
2015/11/11 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
requirejs按需加载angularjs文件实例
2017/06/08 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
JavaScript ES6 Class类实现原理详解
2020/05/08 Javascript
微信小程序自定义底部弹出框功能
2020/11/18 Javascript
[05:08]DOTA2-DPC中国联赛3月6日Recap集锦
2021/03/11 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python实现SMTP发送邮件详细教程
2021/03/02 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
Turnbull & Asser官网:英国皇室御用的顶级定制衬衫
2019/01/31 全球购物
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
商场活动策划方案
2014/01/24 职场文书
婚前财产协议书范本
2014/10/19 职场文书
吃通javascript正则表达式
2021/04/21 Javascript
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
nginx请求限制配置方法
2021/07/09 Servers
opencv检测动态物体的实现
2021/07/21 Python
Elasticsearch 索引操作和增删改查
2022/04/19 Python