2009-11-12 177 views
1

我做了一個簡單的PHP腳本來顯示他們上傳的用戶頭像圖像,但我想知道如何改進下面的腳本。需要幫助PHP頭像腳本

有什麼我可以做的,以改善加載時間非常大的用戶頭像圖像?如果是這樣,我怎麼能把它添加到我的代碼?

這裏是下面的代碼:

<?php 

list($width, $height) = getimagesize("images/pic.jpg"); 

if ($width >= 180){ 
    $width = 180; 
    echo '<img src="images/pic.jpg" width="' .$width. '" />'; 
} else { 
    echo '<img src="images/pic.jpg" width="' .$width. '" height="' .height. '" />'; 
} 

?> 

回答

0

減少加載時間將調整在你的代碼的圖像文件的最好方法。上面所做的是將完整大小的圖像傳送到客戶端,並使用HTML指示瀏覽器調整圖像大小。

更新:您可以使用phpthumb創建縮略圖。確保你已經安裝了GD,因爲它是一個依賴項。

+0

我該怎麼做?例子會有所幫助。 – PeAk 2009-11-12 05:55:45

+1

http://www.google.com/search?q=php+thumbnail(只是說) – notJim 2009-11-12 06:10:38

+0

@PeAk:我更新了我的答案,包括一個鏈接到PHP的縮略圖生成器。 – Asaph 2009-11-12 06:16:18

0

我會從用戶需要一定大小的頭像,而這將保持加載時間一致,以及讓你保持你的CSS相同的風格,而不是你的設計變化。

希望這有助於 大衛

+0

不希望要求用戶提供符合您需要的尺寸(佈局或尺寸方面)的圖像。特別是沒有給予豐富的PHP腳本來縮放圖像:) – jensgram 2009-11-12 07:11:28

0

我會調整& transtype上傳的頭像文件到180X ......或者...... X180 PNG圖片與GD事前。

0

因爲它看起來像是限制您的用戶180px圖像寬度,我會調整上傳的圖片。然後,您可以保留用於快速顯示的「縮略圖」版本,並且只有在用戶訪問用戶配置文件時才顯示「完整」版本。

由於您正在控制上傳,所以您甚至可以製作縮略圖正方形,以便所有的頭像在維度上完美匹配。要做到這一點,您可以將全尺寸裁剪爲正方形。

在這兩種情況下,我絕對不會僅僅依靠瀏覽器來爲您調整圖像大小。在你的例子中,你仍然發送完整的圖像到瀏覽器。

+0

我該怎麼做? – PeAk 2009-11-12 06:01:26

0

您應該考慮在上傳時將圖像縮放爲180像素的最大寬度,然後提供此緩存圖像,而不是請求每個服務器上的大小。

編輯:來自PHP文檔(imagecopyresized())的例子應該給你一個想法。然後,您可以簡單地將調整大小的圖像保存爲用戶名/用戶ID,並提供<img src="images/resized/' . USER-ID-OR-NAME-GOES-HERE . '.jpg" alt="Avatar for USERNAME" />,知道圖像存在(假定用戶有效)。