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


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 拖放效果实现代码
Jan 22 Javascript
修复bash漏洞的shell脚本分享
Dec 31 Javascript
JavaScript设置表单上传时文件个数的方法
Aug 11 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
Apr 21 Javascript
微信小程序 实现tabs选项卡效果实例代码
Oct 31 Javascript
jquery select2的使用心得(推荐)
Dec 04 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
JavaScript代码执行的先后顺序问题
Oct 29 Javascript
vue-cli3搭建项目的详细步骤
Dec 05 Javascript
Vue实现计算器计算效果
Aug 17 Javascript
原生JS运动实现轮播图
Jan 02 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
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
php的curl实现get和post的代码
2008/08/23 PHP
php对数组排序的简单实例
2013/12/25 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
ext jquery 简单比较
2010/04/07 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jquery 操作DOM案例代码分享
2012/04/05 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
js控制CSS样式属性语法对照表
2012/12/11 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
微信小程序实现聊天对话(文本、图片)功能
2018/07/06 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
python虚拟环境virtualenv的安装与使用
2017/09/21 Python
Python实现的购物车功能示例
2018/02/11 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
用python写测试数据文件过程解析
2019/09/25 Python
python装饰器相当于函数的调用方式
2019/12/27 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
python dict如何定义
2020/09/02 Python
Jo Malone美国官网:祖玛珑香水
2017/03/27 全球购物
LN-CC美国:伦敦时尚生活的缩影
2019/02/19 全球购物
《只有一个地球》教学反思
2014/02/14 职场文书
银行金融服务方案
2014/06/11 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
javaScript Array api梳理
2021/03/31 Javascript
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
java executor包参数处理功能 
2022/02/15 Java/Android
Spring Bean是如何初始化的详解
2022/03/22 Java/Android