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


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 fullscreen全屏实现代码
Apr 09 Javascript
使用js获取QueryString的方法小结
Feb 28 Javascript
THREE.JS入门教程(3)着色器-下
Jan 24 Javascript
js获取当前日期代码适用于网页头部
Jun 27 Javascript
js设置function参数默认值(适合没有传参情况)
Feb 24 Javascript
js原型链与继承解析(初体验)
May 09 Javascript
微信小程序 欢迎界面开发的实例详解
Nov 30 Javascript
微信小程序中hidden不生效原因的解决办法
Apr 26 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
Vue-cli中为单独页面设置背景色的实现方法
Feb 11 Javascript
Vue中&quot;This dependency was not found&quot;问题的解决方法
Jun 19 Javascript
17道题让你彻底理解JS中的类型转换
Aug 08 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
短波问题解答
2021/02/28 无线电
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
本人自用的global.js库源码分享
2015/02/28 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
python实现登陆知乎获得个人收藏并保存为word文件
2015/03/16 Python
在macOS上搭建python环境的实现方法
2019/08/13 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
Python代码需要缩进吗
2020/07/01 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
母亲七十大寿答谢词
2014/01/18 职场文书
《凡卡》教学反思
2014/04/09 职场文书
企业总经理任命书
2014/06/05 职场文书
先进教师个人事迹材料
2014/12/15 职场文书
学习与创新自我评价
2015/03/09 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
2019最新版试用期劳动合同模板!
2019/07/04 职场文书
python 爬取天气网卫星图片
2021/06/07 Python
python实现剪贴板的操作
2021/07/01 Python
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python