2011-02-10 64 views
0

我有一個數據庫,它存儲項目和每個項目的圖像鏈接。現在圖像不能在本地存儲(這裏不會有太多的空間和其他原因),所以我鏈接到其他服務器上的圖像。如何更快加載外部圖像?

當我wan't顯示的項目(與它的形象),我while語句運行,像這樣mysql_fetch_array(簡體):

$result = mysql_query("SELECT * FROM items"); 

while($row = mysql_fetch_array($result)) { 

echo "<h1>".$row['name']."</h1>"; 
echo "<img width='200' src='".$row['img']."' />"; 

} 

但圖片的加載需要永遠,因爲一些外部的圖像尺寸很大,但我只需要200px寬。

有沒有辦法縮小圖像'在旅途中,或加快了加載速度?

(使用php/html)

謝謝,邁克。

+1

其他服務器上的圖像......他們是你的服務器嗎?如果是這樣,您可以創建圖像的縮略圖版本和源代碼。 – PureForm 2011-02-10 16:28:52

回答

0

沒有直接調整圖像大小的方法,因爲它需要大量的CPU計算,因此服務完整的res圖像並讓瀏覽器調整大小會更簡單。

如果您決定要調整服務器上的圖像然後再降低服務器的圖像大小,可以使用this PHP類。我很簡單,使用起來速度很快。

希望這會有所幫助。

1

的圖像一定(文件)的大小,並且它保存在某個地方,你不用管。

爲了減小尺寸,您必須將數據傳輸到您所控制的某個位置 - 並且所花費的時間與傳輸到瀏覽器所需的時間大致相同(之後您必須花時間編輯圖像,然後將其轉移到瀏覽器)。

2

任何你「隨時隨地」所做的事情都會變得更慢,因爲要調整圖像大小,你必須首先下載它。

可以調整圖像大小並保存一個較小的版本,這樣做很簡單。在文檔和評論here中有很多示例。

但你只能選一個好處出來的,如果你保存較小的圖像,並從你的服務器爲他們提供服務(或從別的地方你可以把他們,像亞馬遜S3)在將來的請求。

您可以編寫一個快速腳本,使數據庫引用的每個映像的較小版本脫機,然後開始提供服務,而不是編寫指向遠程版本的<img>標籤。

0

如果你擁有圖像的外部位置並有很多圖像,我會創建一個縮放功能。

E.g:

"domain.com/yourimage?w=200"

其中"w"是寬度,告訴服務器您檢索它之前調整其大小。