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

看旁边的实习生同事一直在搞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. django开发后台接口error 10053/10054

    初学Django,开发完接口之后访问post请求的接口遇到error10053和10054,查阅很多资料没有找到具体的原因. 在这里记录下我遇到这两个报错的原因和解决方案: get请求取请求参数:su ...

  2. 【SQL server初级】数据库性能优化三:程序操作优化

    数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第三部分 数据库性能优化三:程序操作优化 概述:程序访问优化也可以认为是访问SQL语句的优化,一个好的SQL语句是可以减少 ...

  3. asp.netcore 自动挡Docker Nginx Redis(滴滴滴,自动挡)

    前言 上一章介绍了Docker通过多条命令创建启动运行Docker容器,由此可见这样一个个去创建单独的容器也是相当麻烦的,比如要在某个复杂项目中用DB.缓存.消息等等,这样我们还要去一个个再创建,为此 ...

  4. java架构之路-(SpringMVC篇)SpringMVC主要流程源码解析(上)源码执行流程

    做过web项目的小伙伴,对于SpringMVC,Struts2都是在熟悉不过了,再就是我们比较古老的servlet,我们先来复习一下我们的servlet生命周期. servlet生命周期 1)初始化阶 ...

  5. ng-cli新建项目

    tip:所有的命令是红色标签 , 链接为蓝色标签 使用ng-cli创建新的项目一般需要安装一些新的东西后才可以进行创建成功 1.需要先安装node.js  链接: https://nodejs.org ...

  6. python - json模块使用 / 快速入门

    json基本格式 """ json格式 -> [{}, {}]: [{ "name": "Bob", "gende ...

  7. bat脚本自动安装Jmeter&Jdk

    一句话能解决的事情,绝对不要写一篇文章:一篇文章能解决的事情,绝对不要使用各种工具:一个工具能解决的事情,绝对不要跑东跑西…… 文章主要介绍脚本如何下载.安装.配置Jmeter&Jdk. 不多 ...

  8. 多线程下的wait为什么可以不需要notify

    多线程下的wait方法就像我无处安放的青春,胡乱来,感觉没有一点套路.wait后不需要notify仍可以继续执行.所以我决定看看到底咋回事..... 先结合join方法了解一下. join方法是可以等 ...

  9. Jquery的load加载本地文件出现跨域错误的解决方案

    如果用原生的AJAX是加载本地文件就不会出现错误.当然,这个jquery的load放在服务器上通过http加载还是支持的.也有例外比如在firefox和ie浏览器使用$.ajax加载本地html或tx ...

  10. asp.net 重写OnException返回json或跳转新页面

    protected override void OnException(ExceptionContext filterContext) { // 此处进行异常记录,可以记录到数据库或文本,也可以使用其 ...