微信小程序 canvas 备忘

简介: 微信小程序 canvas 备忘

发现前两年用的小程序的canvas api,目前在小程序中都发生了很大的更新,导致都无法直接使用了。

故写下这个笔记记录

基本使用

wxml

type 类型 为 2d 或者 webgl

id 必须提供

<canvas type="2d" id="myCanvas"></canvas>

javascript

Page({
  onLoad() {
    // 1 获取界面上的节点信息 返回一个 SelectorQuery 对象实例
    const query = wx.createSelectorQuery();
    query
      // 2 在当前页面下选择第一个匹配选择器 selector 的节点。返回一个 NodesRef 对象实例,可以用于获取节点信息
      .select('#myCanvas')
      // 3  获取节点的相关信息。需要获取的字段在 fields 中指定。返回值是 nodesRef 对应的 selectorQuery
      .fields({ node: true, size: true })
      // 4 执行所有的请求。请求结果按请求次序构成数组
      .exec((res) => {
        // 5 获取画布节点
        const canvas = res[0].node;
        // 6 获取画布对象
        const ctx = canvas.getContext('2d');
        // 7 定起点
        ctx.moveTo(0, 0);
        // 8 终点
        ctx.lineTo(100, 100);
        // 9 描边
        ctx.stroke();
      });
  },
});


画图片

M17W`EZB5AJ1~%~TXI%X4HM.png

javascript

Page({
  onLoad() {
    // 1 获取界面上的节点信息 返回一个 SelectorQuery 对象实例
    const query = wx.createSelectorQuery();
    query
      // 2 在当前页面下选择第一个匹配选择器 selector 的节点。返回一个 NodesRef 对象实例,可以用于获取节点信息
      .select('#myCanvas')
      // 3  获取节点的相关信息。需要获取的字段在 fields 中指定。返回值是 nodesRef 对应的 selectorQuery
      .fields({ node: true, size: true })
      // 4 执行所有的请求。请求结果按请求次序构成数组
      .exec((res) => {
        // ==========================
        // 1 获取画布节点
        const canvas = res[0].node;
        // 2 获取画布对象
        const ctx = canvas.getContext('2d');
        // 3 创建图片
        const image = canvas.createImage();
        // 4 监听图片下载
        image.onload = function () {
          // 5 开始描绘图片
          ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
        };
        // 6 绘图
        image.src = '../../images/1.jpg';
        // ==========================
      });
  },
});

其他参考链接

  1. Canvas 接口
  2. 画布指南
  3. 旧版画布迁移指南
  4. 小程序 canvas 生成海报 一次搞掂
  5. creratePoster
  6. painter
  7. wxml-to-canvas
目录
相关文章
|
5月前
|
前端开发 小程序 JavaScript
微信小程序canvas手写签字
微信小程序canvas手写签字
84 0
|
5月前
|
前端开发 小程序
微信小程序canvas画布绘制base64图片并保存图片到相册中
微信小程序canvas画布绘制base64图片并保存图片到相册中
176 0
|
1天前
|
前端开发 小程序 JavaScript
小程序 canvas 生成海报 一次搞掂
小程序 canvas 生成海报 一次搞掂
12 1
|
3月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
367 0
|
5月前
|
前端开发 小程序
微信小程序绘制canvas时在不同 设备上的大小不同的问题
微信小程序绘制canvas时在不同 设备上的大小不同的问题
218 0
|
5月前
|
前端开发 小程序
【微信小程序5】利用canvas实现纯色背景抠图功能
【微信小程序5】利用canvas实现纯色背景抠图功能
272 0
|
5月前
|
前端开发 小程序
微信小程序canvas画布绘制;canvas画布图片保存
微信小程序canvas画布绘制;canvas画布图片保存
80 0
|
3天前
|
小程序 API
微信小程序更新提醒uniapp
在小程序开发中,版本更新至关重要。本方案利用 `uni-app` 的 `uni.getUpdateManager()` API 在启动时检测版本更新,提示用户并提供立即更新选项,自动下载更新内容,并在更新完成后重启小程序以应用新版本。适用于微信小程序,确保用户始终使用最新版本。以下是实现步骤: ### 实现步骤 1. **创建更新方法**:在 `App.vue` 中创建 `updateApp` 方法用于检查小程序是否有新版本。 2. **测试**:添加编译模式并选择成功状态进行模拟测试。
8 0
微信小程序更新提醒uniapp
|
2月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
79 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
2月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
76 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序