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


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 相关文章推荐
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
js实现各种复制到剪贴板的方法(分享)
Oct 27 Javascript
Vue.js中用v-bind绑定class的注意事项
Dec 13 Javascript
js实现文本上下来回滚动
Feb 03 Javascript
基于jQuery实现简单人工智能聊天室
Feb 10 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
Bootstrap DateTime Picker日历控件简单应用
Mar 25 Javascript
angularjs实现过滤并替换关键字小功能
Sep 19 Javascript
vue引入js数字小键盘的实现代码
May 14 Javascript
浅谈关于iview表单验证的问题
Sep 29 Javascript
jQuery实现全选按钮
Jan 01 jQuery
微信小程序实现轨迹回放的示例代码
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
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php 开发中加密的几种方法总结
2017/03/22 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
laravel入门知识点整理
2020/09/15 PHP
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
Node.js dgram模块实现UDP通信示例代码
2017/09/26 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
详解vue 组件
2020/06/11 Javascript
[01:35]2018完美盛典章节片——共竞
2018/12/17 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
python简单程序读取串口信息的方法
2015/03/13 Python
Python中Class类用法实例分析
2015/11/12 Python
Python连接phoenix的方法示例
2017/09/29 Python
Python读取文件内容的三种常用方式及效率比较
2017/10/07 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
斯凯奇澳大利亚官网:SKECHERS澳大利亚
2018/03/31 全球购物
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
学生党员检讨书范文
2014/12/27 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书
步步惊心观后感
2015/06/12 职场文书