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


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 05 Javascript
js 与 php 通过json数据进行通讯示例
Mar 26 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
JS获得选取checkbox整行数据的方法
Jan 28 Javascript
轻松实现javascript图片轮播特效
Jan 13 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
Bootstrap datepicker日期选择器插件使用详解
Jul 26 Javascript
基于jQuery.i18n实现web前端的国际化
May 04 jQuery
JavaScript反射与依赖注入实例详解
May 29 Javascript
解决vue-cli3 使用子目录部署问题
Jul 19 Javascript
DatePickerDialog 自定义样式及使用全解
Jul 09 Javascript
JavaScript内置对象之Array的使用小结
May 12 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仿discuz分页效果代码
2008/10/02 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php实现的debug log日志操作类实例
2016/07/12 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
JS查看对象功能代码
2008/04/25 Javascript
javascript 短路法代码精简
2009/08/20 Javascript
JQUERY1.6 使用方法四 检测浏览器
2011/11/23 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
jQuery中:checkbox选择器用法实例
2015/01/03 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
如何运行Python程序的方法
2013/04/21 Python
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
python数据结构之链表详解
2017/09/12 Python
python实现多张图片拼接成大图
2019/01/15 Python
ipad上运行python的方法步骤
2019/10/12 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
毕业设计计划书
2014/01/09 职场文书
《中华少年》教学反思
2014/02/15 职场文书
大学运动会入场词
2014/02/22 职场文书
自我鉴定总结
2014/03/24 职场文书
大学应届毕业生求职信
2014/05/24 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
python中sys模块的介绍与实例
2021/04/17 Python