canvas 中插入的图片自适应铺满容器

  • 在 canvas 中插入图片,使图片自适应的充满布局容器!

HTML

  <canvas id="myCanvas7" width="200" height="200" style="border:1px solid #895;margin-right:20px;margin-bottom:20px;">您的浏览器不支持canvas</canvas>

JS

    var c7 = document.getElementById("myCanvas7");
    var cW = c7.offsetWidth;    // 获取元素宽度
    var cH = c7.offsetHeight;   // 获取元素高度
    
    var imgObj = new Image();
    imgObj.src = "../../images/1.jpg";
    var imgW = '';
    var imgH = '';
    
    imgObj.onload = function() {
        imgW = imgObj.width;
        imgH = imgObj.height;
        var ctx7 = c7.getContext("2d");
        ctx7.drawImage(this,0,0,cW,imgH*cW/imgW)
    }

效果图:

image.png

另外说一下 canvas 的 drawImage 方法参数

  • drawImage函数有三种函数原型:
  • drawImage(image, dx, dy)
  • drawImage(image, dx, dy, dw, dh)
  • drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)
  • 第一个参数image可以用HTMLImageElement,HTMLCanvasElement或者HTMLVideoElement作为参数。
  • dx和dy是image在canvas中定位的坐标值;
  • dw和dh是image在canvas中即将绘制区域(相对dx和dy坐标的偏移量)的宽度和高度值;
  • sx和sy是image所要绘制的起始位置;
  • sw和sh是image所要绘制区域(相对image的sx和sy坐标的偏移量)的宽度和高度值。
image.png
posted @   一个默默努力的小韭菜  阅读(1011)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示