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


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兼容性测试实例
Jul 01 Javascript
JS 实现导航栏悬停效果(续)
Sep 24 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
JavaScript获取当前cpu使用率的方法
Dec 15 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
js中async函数结合promise的小案例浅析
Apr 14 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
Sep 21 Javascript
Bootstrap table 服务器端分页功能实现方法示例
Jun 01 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
239军机修复记
2021/03/02 无线电
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
JS计算两个时间相差分钟数的方法示例
2018/01/10 Javascript
详解redux异步操作实践
2018/08/15 Javascript
vuex 动态注册方法 registerModule的实现
2019/07/03 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python类的基础入门知识
2008/11/24 Python
python批量同步web服务器代码核心程序
2014/09/01 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
python批量修改图片后缀的方法(png到jpg)
2018/10/25 Python
详解python中docx库的安装过程
2019/11/08 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
省优秀教师事迹材料
2014/01/30 职场文书
《雨点儿》教学反思
2014/04/14 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
大学生求职信怎么写
2015/03/19 职场文书
初中班主任培训心得体会
2016/01/07 职场文书
礼仪培训心得体会
2016/01/22 职场文书