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


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检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
Nov 26 Javascript
javascript实现图片轮播效果
Jan 20 Javascript
jQuery实现图片局部放大镜效果
Mar 17 Javascript
浅析jQuery操作select控件的取值和设值
Dec 07 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
Dec 20 Javascript
node thread.sleep实现示例
Jun 20 Javascript
基于Angularjs-router动态改变Title值的问题
Aug 30 Javascript
深入理解Vue.js轻量高效的前端组件化方案
Dec 10 Javascript
vue组件之间通信方式实例总结【8种方式】
Feb 22 Javascript
js实现星星打分效果
Jul 05 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
晶体管来复再生式二管收音机
2021/03/02 无线电
ThinkPHP缓存方法S()概述
2014/06/13 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
js css样式操作代码(批量操作)
2009/10/09 Javascript
js prototype截取字符串函数
2010/04/01 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
javascript数组去重小结
2016/03/07 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
python绘制简单彩虹图
2018/11/19 Python
python实现文本界面网络聊天室
2018/12/12 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
2014年元旦感言
2014/03/06 职场文书
细节决定成败演讲稿
2014/05/12 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
涉外离婚协议书怎么写
2014/11/20 职场文书
幼师大班个人总结
2015/02/13 职场文书
就业推荐表自我评价范文
2015/03/02 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
初中生物教学反思
2016/02/20 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS