Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 使用canvas IE获取要裁剪和预览的原始图像大小_Javascript_Jquery_Html_Canvas_Jcrop - Fatal编程技术网

Javascript 使用canvas IE获取要裁剪和预览的原始图像大小

Javascript 使用canvas IE获取要裁剪和预览的原始图像大小,javascript,jquery,html,canvas,jcrop,Javascript,Jquery,Html,Canvas,Jcrop,好吧,我做了一些关于裁剪和画布的指导 当时一切正常,因为我不支持internet explorer,但现在,它应该得到支持 所以,我不知道为什么,但在我看来,问题在于没有得到原始图像的大小 在chrome、ff、opera和safari中一切都正常。IE这是唯一一个显示出一些问题的图形,裁剪画布的结果不等于图像中的裁剪区域。 下面是绘制裁剪图像的主要代码 $("#crop").on("click", function(){ var canvas = document.getElement

好吧,我做了一些关于裁剪和画布的指导

当时一切正常,因为我不支持internet explorer,但现在,它应该得到支持

所以,我不知道为什么,但在我看来,问题在于没有得到原始图像的大小

在chrome、ff、opera和safari中一切都正常。IE这是唯一一个显示出一些问题的图形,裁剪画布的结果不等于图像中的裁剪区域。

下面是绘制裁剪图像的主要代码

$("#crop").on("click", function(){
    var canvas = document.getElementById("canvasThumbResult");
    var context = canvas.getContext("2d");
    var img = document.getElementById("canvasToThumb"),
        $img = $(img),
        imgW = img.width, // chrome, ff... show as 1498, ie not
        imgH = img.height; // chrome, ff... show as 855, ie not

    var ratioY = imgH / $img.height(),
        ratioX = imgW / $img.width();

    var getX = $('#x').val() * ratioX,
        getY = $('#y').val() * ratioY,
        getWidth = $('#w').val() * ratioX,
        getHeight = $('#h').val() * ratioY;

    context.drawImage(img,getX,getY,getWidth,getHeight,0,0,320,320);
});
要查看问题,只需在ie上运行以下命令:


尝试使用自然宽度/自然高度,而不是宽度/高度

    var img = document.getElementById("canvasToThumb"),
    $img = $(img),
    imgW = img.naturalWidth,
    imgH = img.naturalHeight;