Canvas学习

1.加载图片img标签:

  有两种html加载服务,Live Serve和 本地port,在canvas标签内都不能直接套用img-src图片直接显示,有两种方式:

  【canvas对width和height敏感,不匹配会导致显示不完全】

复制代码
<div>
        <img id="getImg" src="img/图1.jpg" width="960" height="540" />
    </div>

    <script>
        var c = document.getElementById("huaBu");
        var ctx = c.getContext("2d");
        var img = document.getElementById("getImg");
        ctx.drawImage(img, 0, 0,960,540); //直接绘制图片到画布上
    </script>
第一种方式:直接drawImage(但是如果是Live Serve可能会导致加载不出来,刷新页面偶尔还是能加载显示)
复制代码
复制代码
<div>
        <h3>画布</h3>
        <canvas id="huaBu" width="960" height="540">
            抱歉,您的浏览器不支持该标签(浏览器不支持canvas标签而显示出的替换文本)
        </canvas>
    </div>
    <div>
        <h3>图像</h3>
        <img id="getImg" src="img/图1.jpg" width="960" height="540" />
    </div>

    <script>
        var c = document.getElementById("huaBu");
        var ctx = c.getContext("2d");
        var img=new Image();
        img.src="img/图1.jpg";
        img.onload=function(){
            ctx.drawImage(img,0,0,960,540);
        }
    </script>
第二种方式:img.onload(预加载图片)
复制代码

也包含了两种img引入图片方式。

需要给图片缓冲的时间。等图片加载成功后才可以进行绘制。而drawImage这个方法 当图片在没加载完的情况下使用,他会不被调用。绘制就会失败。

参考:here

2.vscode编写canvas代码的时候不会自动补全,在定义canvas变量上添加注解:

/** @type {HTMLCanvasElement} */
即可。
 
3.canvas绘图大小总结,参考:herehere
 
4.transform矩阵变形参考:here
 
5.canvas文本绘制布局参考:here
【Over】
posted @   Renhr  阅读(30)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示