javascript - Html5 canvas drawImage 拉伸(stretch)

标签 javascript html html5-canvas

我尝试在 html5 canvas 上绘制图像。问题是图像在 Canvas 中拉伸(stretch)

load('img_the_scream',
    'http://www.w3schools.com/tags/img_the_scream.jpg',
    function( img ){
        console.log(  img.width , img.height );
        ctx.drawImage( img, 10, 10 , img.width , img.height );
    }
);

我在 http://jsfiddle.net/75rAU/ 中添加了这个问题

最佳答案

那是因为你在 CSS 中修改了 Canvas 大小。 Canvas 有两个不同的大小:HTML 大小(放在 canvas 标签内的大小)和 css 大小,它实际上是 Canvas 的重新缩放。 HTML 大小是您控制的大小(当您绘制时,它使用此大小),CSS 大小是显示的大小,它是 HTML 大小的重新缩放。

所以在这里,你的 Canvas 有默认大小(我不记得了)但是被 css 调整了大小(和拉伸(stretch))

HTML:

<canvas id="cv" width="350" height="350"></canvas>

CSS:

 #cv {
    background:#ff0;
}

我在这里updated your fiddle具有正确的大小分配

关于javascript - Html5 canvas drawImage 拉伸(stretch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16499687/

相关文章:

javascript - Node js+错误: listen EADDRINUSE + Unhandled 'error' event

javascript - 事件监听器在 post 方法上被删除

javascript - Web worker错误

php - PHP 在所有浏览器中都是通用的吗?

javascript - 如何使用javascript HTML5 canvas绘制通过N个点的平滑曲线?

javascript - 从 PayPal SDK 客户端中的 OnError 和 OnApproval 重定向到成功/错误页面

javascript - 低图形 HTML5 游戏导致浏览器卡住

html - 响应式网页设计 : "How to resize a background image according to browser window size using CSS"?

javascript - javascript 数组的第一张图像未显示在 Canvas 上

html - 给定一些 AABB,找到包含它们的最小总表面积 AABB?