Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 画布中的图像高度错误_Javascript_Html_Canvas - Fatal编程技术网

Javascript 画布中的图像高度错误

Javascript 画布中的图像高度错误,javascript,html,canvas,Javascript,Html,Canvas,我有一张这样的画布 <canvas id="canvas" width="600px" height="300px"></canvas> 它是这样显示的 你在拉伸它。如果不想显示拉伸的图像,请不要将任何大小传递给drawImage: self.context.drawImage(this, 0, 0); 没有理由不让代码根据问题中显示的内容工作。根据您给出的代码,对没有self变量进行一些小的更改 <script> var img = docume

我有一张这样的画布

<canvas id="canvas" width="600px" height="300px"></canvas>
它是这样显示的 你在拉伸它。如果不想显示拉伸的图像,请不要将任何大小传递给
drawImage

self.context.drawImage(this, 0, 0);

没有理由不让代码根据问题中显示的内容工作。根据您给出的代码,对没有
self
变量进行一些小的更改

<script>
    var img = document.getElementById("image");
    var c = document.getElementById("canvas");
    var con = c.getContext("2d");

    img.onload = function(){
        var im = this;
        var imgWidth = im.width;
        var imgHeight = im.height;

        var imgScaledWidth = 0;
        var imgScaledHeight = 0;
        var off=20;            

        imgScaledHeight = c.height - off;
        imgScaledWidth = imgScaledHeight * (imgWidth/imgHeight);

    con.drawImage(this, 0,0+(off/2),imgScaledWidth,imgScaledHeight);
    }

</script>


var img=document.getElementById(“图像”);
var c=document.getElementById(“画布”);
var con=c.getContext(“2d”);
img.onload=函数(){
var im=这个;
var imgWidth=im.width;
var imgHeight=im高度;
var imgScaledWidth=0;
var imgScaledHeight=0;
var-off=20;
imgScaledHeight=c.高度-关闭;
imgScaledWidth=imgScaledHeight*(imgWidth/imgHeight);
con.drawImage(此,0,0+(关闭/2),imgScaledWidth,imgScaledHeight);
}

图像大小大于canvas@coure2011那么你想做什么呢?我只想知道图像垂直放入容器的画布大小。图像到底有多大?当你做self.conHeight-40时,你得到了什么值?如果您只是将其硬编码为
300
图像绘制正确吗?self.conHeight等于300,减去40表示遗憾。我不清楚:您是否在调试器中验证了这一点,或者您是说这是应该的?不,这不是必需的。画布内图像的顶部和底部应该有间隙。
<script>
    var img = document.getElementById("image");
    var c = document.getElementById("canvas");
    var con = c.getContext("2d");

    img.onload = function(){
        var im = this;
        var imgWidth = im.width;
        var imgHeight = im.height;

        var imgScaledWidth = 0;
        var imgScaledHeight = 0;
        var off=20;            

        imgScaledHeight = c.height - off;
        imgScaledWidth = imgScaledHeight * (imgWidth/imgHeight);

    con.drawImage(this, 0,0+(off/2),imgScaledWidth,imgScaledHeight);
    }

</script>