javascript - 将图像放入 HTML Canvas(适合宽度和高度)

标签 javascript html canvas

我有这个 HTML 代码:

<div>
    <canvas id="canvas">
    </canvas>
    <img id="canvasimg" src="{{ $photo }}" style="display:none;"/>
</div>

我有这个 javascript 可以将图像绘制到 HTML Canvas 中:

<script>
    var canvas = document.getElementById('canvas');
    ctx = canvas.getContext('2d');

    var deviceWidth = window.innerWidth;;

    canvasWidth = deviceWidth - 40;
    canvasHeight = deviceWidth - 40;

    canvas.width = canvasWidth;
    canvas.height = canvasHeight;

    var img = document.getElementById('canvasimg');

    imgx = 0;
    imgy = 0;

    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.drawImage(img, imgx, imgy); 
</script>

问题是当我将此页面加载到宽屏时,它也会产生更宽的 Canvas 。而图像具有固定的宽度和高度。

如何拉伸(stretch)该图像以使其完美填充 Canvas ?

最佳答案

drawImage 函数使用dWidthdHeight 参数(MDN) .

ctx.drawImage(img, imgx, imgy, canvas.width, canvas.height);

关于javascript - 将图像放入 HTML Canvas(适合宽度和高度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32014050/

相关文章:

html - CSS :hover:after Delay

canvas - 如何使SDL(2)在调整大小时刷新convas内容?

javascript - "Error: MongooseError: Operation ` users.insertOne() ` buffering timed out after 10000ms",

javascript - 通过 JavaScript 跟踪 "video duration watched"分析

css - 我是否错误配置了 Twitter Bootstrap?

javascript - 预加载器加载在 block 内容和导航栏后面

ASP.NET : What exactly is affected when Javascript is off?

javascript - 如何通过 SquareSpace 索引子页面传递 URL UTM/SQF 参数?

canvas - Dart 从 Canvas 上的 SVG 文件中绘制 ID

html - 如何在 HTML5 Canvas 中获取绘制弧线的宽度和高度?