所以,我创建了几个相似图片:如何调整Javascript图像大小?
images = [];
images[0] = new Image();
images[0].src = "bla.jpg";
images[1] = new Image();
images[1].src = "bla1.jpg";
images[2] = new Image();
images[2].src = "bla2.jpg";
这不是实际的加载算法,但产品是一样的:我留下了所谓的“图像”的阵列的,当然,包含一些图像。
我在做一个游戏,我需要调整画布大小,以适应玩家的屏幕大小。我知道如何做到这一点,但现在,我需要调整所有图像的大小。我不知道该怎么做。
我最初的做法是这样的:
for (var i = 0; i < images.length; i ++)
{
images[i].width *= ratio; // newWidth/defaultWidth
images[i].height *= ratio;
}
我没有注意到这个变化,虽然如此,我这样做,只是要确定:
for (var i = 0; i < images.length; i ++)
{
images[i].width = 3; //I'd probably notice if every image in the game was shrunk to this size
images[i].height = 3;
}
这甚至陌生人。这些图像仍然保持不变,然而,游戏减慢了很多。 FPS下降到0.5或类似的东西。
现在,我该如何去调整图像大小?
编辑:我不这样做,当然,要调整实时图像是这样的:
context.drawImage(image, x, y, image.w*r, image.h*r);
因为在我的经验,这大大降低了性能。
如果您使用浏览器动态缩放图像,就像您正在尝试执行的操作那样,渲染性能将大大降低,因为浏览器必须在绘制时缩放图像。某些浏览器在缓存预缩放位时可能比其他浏览器更好,但有些浏览器并不擅长,并且在缩放这样的图像时性能肯定会下降。 – jfriend00 2012-04-06 16:23:04