Javascript Can';t drawImage大于250px正方形
我在使用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
//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');
ascanvas\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是一个输入错误。谢谢!正是我想要的。