学了东西还是要记录一下,刚入职的小萌新啊,运气好分到一个项目不是很急的组原以为时间多了可以多学一些东西,但是发现好像不知道从哪里开始下手,我太南了。。。。

看旁边的实习生同事一直在搞canvas,自己闲着也没有事做,也来画个简单的canvas吧。

自己的项目是做的微信小程序用的mp-vue(后端迟迟不给我接口数据,界面写好了就停滞不前了。。。),因此就直接尝试微信的canvas,之前没用过canvas,别批评我这个都不知道,其实就是有点懒,想着要用的时候再学,没想到兜兜转转自己还是来学了hhhhh

首先,在template里面直接使用canvas就可以,因为微信小程序里面不支持dom的直接操作,所以想通过document来获取canvas对象是不行滴,but微信小程序里面支持自己创建一个画布对象,然后绑定一下自己的canvas-id就可以了。

var context = wx.createCanvasContext('firstCanvas')

于是乎,这个画布对象就可以随意蹂躏啦。

绘制这个过程其实不需要做过多的介绍,w3c里面都有介绍https://www.w3school.com.cn/tags/html_ref_canvas.asp ,微信公众平台也有https://developers.weixin.qq.com/miniprogram/dev/api/canvas/CanvasContext.html这里要说的就是怎么把本地图片放进canvas里,这个创建的context对象有个drawImage方法,可以直接把图片放进画布里,当然大小位置都可以自己定义,drawImage(图片路径,x坐标,y坐标,宽,高)

想必大家都知道微信有很多分享都会生成画报,其实这个就可以用画布来做,因此我们就可以把画布的内容生成图片 wx.canvasToTempFilePath({} )

,大小什么的都是可以自定义的,另外要注意就是非箭头函数要记得拿到正确的this对象,不然会拿错的

wx.canvasToTempFilePath({
x: 0,
y: 0,
width: 600,
height: 800,
destWidth: 600,
destHeight: 800,
canvasId: 'firstCanvas',
success: function (res) {
console.log('图片临时路径', res.tempFilePath)
that.newurl = res.tempFilePath
that.ifget = true
},
fail: function (err) {
console.log(err)
}
})

然后再把生成的图片保存到本地即可

wx.saveImageToPhotosAlbum({
filePath: this.newurl, // 保存的临时路径
success (res) {
console.log('444')
}
})

其实就是记录一下怎么往画布里放图片然后保存到本地,一步一步来嘛,希望以后成为大佬的自己回过头来看自己起步的博客,然后说一句那时候的自己真的是菜的没办法了hhh

微信小程序中的canvas基础应用的更多相关文章

  1. 微信小程序中使用canvas

    微信小程序中使用canvas会存在的一些问题: 由于小程序在绘制canvas的时候不能加载网络图片 所以需要把网络图片保存到本地之后再进行绘制 downLoadImg: function (netUr ...

  2. 全栈开发工程师微信小程序-中(中)

    全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...

  3. 微信小程序 base64 图片 canvas 画布 drawImage 实现

    在微信小程序中 canvas drawImage API 传入的第一个参数是 imageResource 图片资源路径,这个参数通常由从相册选择图片 wx.chooseImage 或 wx.getIm ...

  4. 微信小程序中用户登录和登录态维护

    提供用户登录以及维护用户的登录状态,是一个拥有用户系统的软件应用普遍需要做的事情.像微信这样的一个社交平台,如果做一个小程序应用,我们可能很少会去做一个完全脱离和舍弃连接用户信息的纯工具软件. 让用户 ...

  5. 全栈开发工程师微信小程序-中

    全栈开发工程师微信小程序-中 多媒体及其他的组件 navigator 页面链接 target 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram url 当前小程序内的跳转链 ...

  6. 微信小程序中使用ECharts 异步加载数据 实现图表

    <!--pages/bar/index.wxml--> <view class="container"> <ec-canvas id="my ...

  7. 微信小程序中的自定义组件

    微信小程序中的组件 前言 之前做小程序开发的时候,对于开发来说比较头疼的莫过于自定义组件了,当时官方对这方面的文档也只是寥寥几句,一笔带过而已,所以写起来真的是非常非常痛苦!! 好在微信小程序的库从 ...

  8. 在微信小程序中绘制图表(part2)

    本期大纲 1.确定纵坐标的范围并绘制 2.根据真实数据绘制折线 相关阅读:在微信小程序中绘制图表(part1)在微信小程序中绘制图表(part3) 关注我的 github 项目 查看完整代码. 确定纵 ...

  9. 网页或微信小程序中使元素占满整个屏幕高度

    在项目中经常要用到一个容器元素占满屏幕高度和宽度,然后再在这个容器元素里放置其他元素. 宽度很简单就是width:100% 但是高度呢,我们知道的是height:100%必须是在父元素的高度给定了的情 ...

随机推荐

  1. 建议收藏 - 专业的MySQL开发规范

    为了项目的稳定,代码的高效,管理的便捷,在开发团队内部会制定各种各样的规范 这里分享一份我们定义的MySQL开发规范,欢迎交流拍砖 数据库对象命名规范 数据库对象 命名规范的对象是指数据库SCHEMA ...

  2. Django模板语言, 过滤器整理

    Django模板语言,过滤器整理 1. add {{ value|add:"2" }} 把add后的参数加给value: 处理时,过滤器首先会强制把两个值转换成Int类型. 如果强 ...

  3. Spring boot 官网学习笔记 - 开发第一个Spring boot web应用程序(使用mvn执行、使用jar执行)

    Creating the POM <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...

  4. Flask基础(17)-->防止 CSRF 攻击

    CSRF CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造. CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求. 包括:以你名义发送邮件,发消息,盗取你的账号 ...

  5. .NET进阶篇-丑话先说,Flag先立--致青春

    作为开发者,工作了半年,也总觉得技术栈和刚毕业区别不大,用的技术还都是N年前的,每每看到新东西,也只心里哇塞惊叹一下,然后就回归于忙碌.怪自己的技术池太浅,热门的令人称奇的技术也都是在其他巨人的肩膀上 ...

  6. vue中"‘webpack-dev-server’不是内部或外部命令,也不是可运行的程序"的报错

    在vue项目中发现了这个报错  解决办法将项目里的“node_modules”文件夹删除,然后重新运行cnpm install

  7. 使用 chart 部署 skywalking

    使用 chart 部署 skywalking 本文主要讲述的是如何使用 Helm Charts 将 SkyWalking 部署到 Kubernetes 集群中,相关文档可以参考skywalking-k ...

  8. 详解http报文(2)-web容器是如何解析http报文的

    摘要 在详解http报文一文中,详细介绍了http报文的文本结构.那么作为服务端,web容器是如何解析http报文的呢?本文以jetty和undertow容器为例,来解析web容器是如何处理http报 ...

  9. RocketMQ 源码学习笔记————Producer 是怎么将消息发送至 Broker 的?

    目录 RocketMQ 源码学习笔记----Producer 是怎么将消息发送至 Broker 的? 前言 项目结构 rocketmq-client 模块 DefaultMQProducerTest ...

  10. MongoDB 学习笔记之 Aggregation Pipeline实战实现inner join

     Aggregation Pipeline实战实现inner join: leftT集合: comments集合: 现在我们要用aggregation实现inner join db.comments. ...