繁体   English   中英

Html5画布drawImage拉伸

[英]Html5 canvas drawImage stretched

我试图在html5画布上绘制图像。 问题是在画布中拉伸的图像

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中修改了画布大小。 画布有两个独立的大小:HTML大小(放在canvas标签内的大小)和css大小,实际上是画布的重新缩放。 HTML大小是您控制的大小(绘制时,它使用此大小),CSS大小是显示的大小,它是HTML大小的重新缩放。

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

HTML:

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

CSS:

 #cv {
    background:#ff0;
}

在这里,我用正确的大小分配更新你的小提琴

Canvas有自己的尺寸。 默认为300x150 样式(宽度/高度)就像任何图像一样拉伸canvas 因此,您应该根据需要强力设置尺寸。 您可以通过html <canvas width="123" height="123"></canvas>或JS代码canvas.width = canvas.height = 123 此外,您可以在此处按图像属性canvas.width = img.width等设置大小。

那么,看看jsfiddle: http//jsfiddle.net/75rAU/3/它运作良好

更新http//jsfiddle.net/75rAU/4/ - 这也可能有所帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM