Javascript 尝试使用canvas元素从分幅创建单个贴图图像

Javascript 尝试使用canvas元素从分幅创建单个贴图图像,javascript,canvas,drawimage,Javascript,Canvas,Drawimage,我有一堆png贴图,我正试图将它们缝合在画布元素上 我正在制作一个10x10的平铺,带有一个从0到99(id)的计数器,以跟踪我在哪里。这是绘制图像的线条: ctx.drawImage(this, id%10*imgWidth, Math.floor(id/10)*imgHeight, imgWidth, imgHeight); 其中,id是0到99之间的数字,imgWidth是每个磁贴的宽度,imghight是每个磁贴的高度 我有理由相信这会奏效,但它似乎只是在画布上绘制一个拉伸的瓷砖,而

我有一堆png贴图,我正试图将它们缝合在画布元素上

我正在制作一个10x10的平铺,带有一个从0到99(
id
)的计数器,以跟踪我在哪里。这是绘制图像的线条:

ctx.drawImage(this, id%10*imgWidth, Math.floor(id/10)*imgHeight, imgWidth, imgHeight);
其中,
id
是0到99之间的数字,
imgWidth
是每个磁贴的宽度,
imghight
是每个磁贴的高度


我有理由相信这会奏效,但它似乎只是在画布上绘制一个拉伸的瓷砖,而不是全部100个。当我检查控制台上加载的内容时,图像似乎是每个磁贴的正确形状和内容。这张照片似乎没有放在画布上。有人有什么想法吗?

不在画布上使用jQuery的一个原因是:

$('canvas').width(imgWidth*10).height(imgHeight*10);
:)因为这是指元素大小,而不是位图。我建议改为使用:

myCanvas.width = imgWidth*10;
myCanvas.height = imgHeight*10;

都是些小事,不是吗?该死的天才。“现在我得弄清楚为什么那些瓷砖没有排好。”莫格利布当然是,而且更难发现。我没有检查其余的-但我最初的猜测是加载顺序;图像不一定按照它们请求的相同顺序完成,但是由于计数器无情地增加(?)而不管,传入的图像被放置在当前位置的任何位置。如果我错了,请纠正我,但是因为我使用加载事件调用下一个磁贴,它应该保持顺序。我想这可能是我使用的投影造成的。由于它是球形的,使用线性函数来确定下一个瓷砖坐标可能不是最好的方法。我只是希望我所覆盖的距离足够小,不会太明显。或者再想想,我正在按相反的顺序加载行。哈哈。啊,我现在看到你从处理程序中触发下一次加载,这将更加“同步”,是的,你是对的。有些人倾向于以相反的方式阅读地图:p