Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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 Can';t drawImage大于250px正方形_Javascript_Jquery_Html_Drawimage - Fatal编程技术网

Javascript Can';t drawImage大于250px正方形

Javascript Can';t drawImage大于250px正方形,javascript,jquery,html,drawimage,Javascript,Jquery,Html,Drawimage,我在使用drawImage方法将预加载的图像(宽度和高度大于250PX)放置到画布上时遇到了一些问题 //Canvas var canvas = document.createElement("canvas"); var contex = canvas_image.getContext('2d'); canvas.width = 350; canvas.height = 350; canvas.id = 'canvas' $('.canvas').append(canvas); //Draw

我在使用drawImage方法将预加载的图像(宽度和高度大于250PX)放置到画布上时遇到了一些问题

//Canvas

var canvas = document.createElement("canvas");
var contex = canvas_image.getContext('2d');
canvas.width = 350;
canvas.height = 350;
canvas.id = 'canvas'
$('.canvas').append(canvas);

//Draw Image to canvas

var imageObj = new Image();
imageObj.onload = new function() {
    contex.drawImage(imageObj, 0, 0);
};
imageObj.src = $('img').attr('src');

我似乎无法让它与大于250像素宽或高的图像一起工作。但在250以下,图像显示。。。这真的很奇怪,令人沮丧

必须从canvas元素获取上下文。您在帖子中显示的代码(不确定在发布问题时是否出现了拼写错误?尽管如果不是拼写错误,您应该无法绘制任何内容:-)存在以下错误:

这一行:

var contex = canvas_image.getContext('2d');
应该是:

var contex = canvas.getContext('2d');
as
canvas\u图像
似乎不存在

如果已经加载了图像,则可以直接将其绘制到画布上-无需再次加载图像:

contex.drawImage($('img')[0], 0, 0);
只需确保首先点击它的加载事件,就像处理屏幕外图像一样

var img = $('img');

img.on('load', function(e) {
    contex.drawImage(img[0], 0, 0);
}
或者在
窗口
加载
事件中调用它

其他需要注意的是,如果图像在左上角的350x350像素区域中实际有数据(如果图像非常大)。您可以通过按比例绘制它来进行测试,以查看其中是否有信息:

contex.drawImage(imageObj, 0, 0, canvas.width, canvas.height);

canvas\u image
是文章中的一个输入错误,还是您实际使用的输入错误?是的,canvas\u image是一个输入错误。谢谢!正是我想要的。