1.获取手机宽度 进而设置canvas画布的宽度

onLoad() {let that = this;// 获取系统信息,设置canvas宽高wx.getSystemInfo({success(res) {that.setData({canvasWidth: res.windowWidth})}}) },

2.获取图片信息 将图片保存到本地路径然后再去绘制, 不然容易出现canvas画不上然后保存图片到本地时候出现空白的问题

  make:function(url){var that=this;console.log(url);//获取图片信息wx.getImageInfo({src: url,success: function(res){console.log(JSON.stringify(res));that.setData({imgInfo:res});console.log(JSON.stringify(that.data.imgInfo));let imageSize = util.imageZoomHeightUtil(that.data.imgInfo.width, that.data.imgInfo.height);//根据屏幕宽度that.setData({ canvasHeight: imageSize.imageHeight });console.log('imageSize等比例' + JSON.stringify(imageSize));that.makeCanvas(url);}})},

3.开始绘制图 ctx.draw(false, this.drawCallBack)一定要执行后面的回调函数

makeCanvas: function (url) {var ctx = wx.createCanvasContext('canvas')ctx.drawImage(url, 0, 0, this.data.imgInfo.width, this.data.imgInfo.height, 0, 0, this.data.canvasWidth, this.data.canvasHeight);ctx.draw(false, this.drawCallBack)},drawCallBack: function () {var that = thiswx.canvasToTempFilePath({x: 0,y: 0,width: that.data.canvasWidth,height: that.data.canvasHeight,canvasId: 'canvas',fileType: 'jpg',success: function (res) {// wx.hideLoading();that.setData({'img': res.tempFilePath});console.log('ok');},fail: function (res) {wx.hideLoading();wx.showToast({icon: 'none',title: '生成失败!',});}})},

完整demo源码下载地址:https://download.csdn.net/download/lmx15063393957/11259093

微信小程序 实现canvas按照原图等比例不失真绘制海报图并保存海报图片到本地相册相关推荐

  1. 微信小程序 - DZMDrawingBoard - (Canvas封装的画板、手写签名、生成图片、保存相册...库)

    一.简介 在微信小程序开发中,有时候需要手写签名生成图片上传服务器.制作一个手绘板.画板并支持保存图片等,然后就封装了一下:DZMDrawingBoard. DZMDrawingBoard 通过 Ca ...

  2. 微信小程序-基于canvas画画涂鸦

    代码地址如下: http://www.demodashi.com/demo/14461.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.c ...

  3. html5绘制图形幸运大转盘,微信小程序利用canvas 绘制幸运大转盘功能

    小程序对 canvas api 跟h5的不太一致 ,所以这个搞的比较久,不多说,先贴代码 Page({ /** * 页面的初始数据 */ data: { awardsConfig: {}, resta ...

  4. 解决了:微信小程序使用canvas绘制倒计时圆圈和数字居中的实现

    微信小程序使用canvas绘制倒计时圆圈和数字居中的实现 1.显示结果 2.过程: (1)wxml + css <!-- 每道题 --><view style="backg ...

  5. 微信小程序使用canvas绘制二维码实现跳转小程序

    开始接到这个需求的时候,我查阅文档获取小程序码 | 微信开放文档 发现两种途径 需要后端在服务器上调用接口拿到二维码,因为调用的 https://api.weixin.qq.com这个域名是不允许上白 ...

  6. 微信小程序利用canvas实现六边形蜘蛛图

    微信小程序利用canvas实现六边形蜘蛛图 发布时间:2018-01-24 14:30:29 1..wxml <canvas style="width: 200px; height: ...

  7. 微信小程序使用canvas绘制海报并保存本地相册

    在做微信小程序的时候,很多都会用到生成海报分享功能,刚好最近项目有这个需求,今天就发出来记录下 首先是使用canvas绘制一张海报,微信小程序的canvas有老版本和新版本我是用的是新版本 代码如下 ...

  8. 微信小程序使用canvas绘图并下载

    微信小程序使用canvas绘图并下载 实现的功能: canvas绘制页面 当前页面可下载 文字自动换行 实现的效果最终如下图所示: 在这里插入图片描述 实现步骤: 1.页面初始化获取屏幕尺寸 onLo ...

  9. 微信小程序开发之路(十三)正式开工--设计ER图与数据库的创建

    微信小程序开发之路(十三)正式开工–设计ER图数据库的创建 先制作班费公是示功能 我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为: DATABASES = ...

最新文章

  1. 专业研究HP procurve网络、阿姆瑞特和系统集成的论坛
  2. Unity热更新技术整理
  3. 收藏:TerryLee的.NET设计模式系列文章
  4. bzoj 1901: Zju2112 Dynamic Rankings
  5. 实现手机左右滑屏效果
  6. Python3.8 新特性:赋值表达式
  7. 掌握这些!让Python不再从入门到放弃,初学者容易忽略的一些细节
  8. 如何在IE右键菜单中添加自定义项
  9. 最近想读的书想做的事
  10. Java解析json出现双引号变成转义字符解决办法
  11. Python:Python3错误提示TypeError: slice indices must be integers or None or have an __index__ method解决办法
  12. protues仿真常见问题解决方案
  13. C# VS2017使用AxWindowsMediaPlayer,解决打开软件后自动播放问题解决
  14. android9 coloros6版本,【OPPO Reno刷机包】A.12版 ColorOS6系统 安卓9 官方卡刷包
  15. mysql 分区表 归档_详解 MySQL 数据库冷数据归档
  16. 构建虚拟Web主机——基于IP地址的虚拟主机
  17. XtraReport显示行序号
  18. 计算机专业学渣面试,感觉读了计算机专业真的是一条不归路
  19. C++ 设计模式之单例模式
  20. EDIUS中的视频如何实现90度旋转

热门文章

  1. 「津津乐道播客」#238. 科技乱炖:程序员的大裤衩和格子衫
  2. JVM 上数据处理语言的竞争:Kotlin, Scala 和 SPL
  3. ES6之Proxy代理
  4. Python 继承/基础综合练习题
  5. python基于PHP+mysql母婴用品销售购物平台
  6. 【详解】计算机视觉之目标分割
  7. TensorFlow学习笔记Day2-综述
  8. 天天写业务代码_如何成为技术大牛?
  9. Pythom基础入门
  10. 等保测评报告编号组成部分有哪些?代表什么意思?