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


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实现表格动态分页实现代码
Jun 21 Javascript
根据经纬度计算地球上两点之间的距离js实现代码
Mar 05 Javascript
使用jQuery避免鼠标双击的解决方案
Aug 21 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
JavaScript常用脚本汇总(三)
Mar 04 Javascript
jQuery获取字符串中出现最多的数
Feb 22 Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 Javascript
轻松理解JavaScript之AJAX
Mar 15 Javascript
webpack 代码分离优化快速指北
May 18 Javascript
使用jQuery实现掷骰子游戏
Oct 24 jQuery
js实现全选和全不选功能
Jul 28 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入门教程 精简版
2009/12/13 PHP
PHP面向对象精要总结
2014/11/07 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
初学Javascript的一些总结
2008/11/03 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
javascript实现模拟时钟的方法
2015/05/13 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
详解js树形控件—zTree使用总结
2016/12/28 Javascript
canvas时钟效果
2017/02/16 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
js中的深浅拷贝问题简析
2019/05/10 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python与R语言的简要对比
2017/11/14 Python
python使用KNN算法手写体识别
2018/02/01 Python
Python图片的横坐标汉字实例
2019/12/04 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
使用python实现学生信息管理系统
2021/02/25 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
仓管员岗位责任制
2014/02/19 职场文书
检讨书模板
2015/01/29 职场文书
个人自荐书怎么写
2015/03/26 职场文书
导师工作推荐信
2015/03/27 职场文书
MySQL基础(一)
2021/04/05 MySQL
详解nodejs内置模块
2021/05/06 NodeJs