前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >微信小程序 canvas 备忘

微信小程序 canvas 备忘

作者头像
万少
发布2025-02-11 14:13:28
发布2025-02-11 14:13:28
8100
代码可运行
举报
文章被收录于专栏:万少的技术分享
运行总次数:0
代码可运行

发现前两年用的小程序的canvas api,目前在小程序中都发生了很大的更新,导致都无法直接使用了。 故写下这个笔记记录

基本使用

wxml

type 类型 为 2d 或者 webgl id 必须提供

代码语言:javascript
代码运行次数:0
复制
<canvas type="2d" id="myCanvas"></canvas>

javascript

代码语言:javascript
代码运行次数:0
复制
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();
      });
  },
});

画图片

image-20220723214530773
image-20220723214530773

javascript

代码语言:javascript
代码运行次数:0
复制
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';

        // ==========================
      });
  },
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-02-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本使用
    • wxml
    • javascript
  • 画图片
    • javascript
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档