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


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 相关文章推荐
js操作ajax返回的json的注意问题!
Feb 23 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
May 09 Javascript
在js(jquery)中获得文本框焦点和失去焦点的方法
Dec 04 Javascript
javascript预加载图片、css、js的方法示例介绍
Oct 14 Javascript
基于jquery实现发送文章到手机的代码
Dec 26 Javascript
2则自己编写的jQuery特效分享
Feb 26 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
vue实现验证码输入框组件
Dec 14 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
JS闭包原理与应用经典示例
Dec 20 Javascript
微信小程序如何刷新当前界面的实现方法
Jun 07 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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
php 计划任务 检测用户连接状态
2012/03/29 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
Date对象格式化函数代码
2010/07/17 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
json数据的列循环示例
2013/09/06 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
详解javascript传统方法实现异步校验
2016/01/22 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
React中上传图片到七牛的示例代码
2017/10/10 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
javascript连接mysql与php通过odbc连接任意数据库的实例
2017/12/27 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
python中的闭包用法实例详解
2015/05/05 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
python绘制直线的方法
2018/06/30 Python
解决python中 f.write写入中文出错的问题
2018/10/31 Python
Python协程 yield与协程greenlet简单用法示例
2019/11/22 Python
多个python文件调用logging模块报错误
2020/02/12 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
推荐信模板
2014/05/09 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
离职保密承诺书
2014/05/28 职场文书
金融专业求职信
2014/08/05 职场文书
汽车服务工程专业自荐信
2014/09/02 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers