簡體   English   中英

如何調整 Javascript 圖片的大小?

[英]How to resize Javascript images?

所以,我創建了一些像這樣的圖像:

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";

這不是實際的加載算法,但結果是一樣的:我剩下一個名為“圖像”的數組,其中當然包含一些圖像。

我正在制作游戲,我需要調整 canvas 的大小,以適應播放器的屏幕大小。 我知道該怎么做,但現在,我還需要調整所有圖像的大小。 我不知道該怎么做。

我最初的方法是這樣的:

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 或類似值。

現在,我 go 如何調整圖像大小?

編輯:當然,我不希望像這樣實時調整圖像大小:

context.drawImage(image, x, y, image.w*r, image.h*r);

因為根據我的經驗,它會大大降低性能。

不要設置寬度和高度屬性,而是設置 css 屬性:

var i, image;
for ( i = 0; i < images.length; i++ )
{
    image = $( images[i] );
    image.css( 'width', image.width() * ratio );
    image.css( 'height', image.height() * ratio );
}

當您在 Javascript 中設置維度時,它們應該被分配為字符串。 數字不起作用。 如果您需要進行計算,則將結果轉換為字符串。

 images[i].width = (images[i].width*ratio).toString(); // newWidth/defaultWidth
 images[i].height = (images[i].height*ratio).toString();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM