2013-11-21 103 views
1

我剛剛從一個共享的託管服務收到一箇舊的php網站,我需要遷移到一個新的數據中心。我碰到這個:如何即時調整圖像大小?

有一個圖像調整即時機制,改變名稱在瀏覽器中的圖像改變他的大小:

if(mysql_num_rows($resultIMG)>0) { 
    $lineIMG = mysql_fetch_object($resultIMG); 
    echo "<img src=\"../Dev/modules/dGC/images/".htmlspecialchars($lineIMG->imagem_min)."\" alt=\"\" title=\"\">&nbsp;"; 
} 

$ lineIMG是包含圖像的名稱的對象,它有3個屬性:

$lineIMG->image; 
$lineIMG->image_min; 
$lineIMG->image_med; 

只有$ lineIMG->圖像包含圖像的真實名稱,另一個有一個前綴對應於我們要調整大小的大小。

例如:

如果圖像稱爲product002.jpg,這個功能:

htmlspecialchars($lineIMG->imagem_min) 

會產生:

min_product002.jpg 

,如果我在瀏覽器名稱更改爲med_product002.jpg,作爲迴應將給我中等大小的圖像。文件系統中不存在文件min_product002.jpg或med_product002.jpg,只有原始文件product002.jpg。

任何想法如何實現這一點

我發現this後,解釋如何使用國防部重寫來實現這一點,可這是在我的網站上使用的機制?

但我的網頁沒有包含腳本,這可以是全球性的,因爲它是共享主機?

+0

是。基本上你必須檢測何時用戶想要打開圖像 - 如果圖像存在,那麼用戶將打開它作爲普通圖像,如果不是,那麼他被重定向到腳本,該腳本讀取用戶想要打開的圖像,然後創建它,保存在文件夾中下一次有人問這個圖像時,它已經準備好了)然後將其提供給用戶。您可以使用像200x300這樣的名稱,而不是高/中/低,所以如果您需要其他大小,您可以只寫,它不需要任何額外的工作。 – Volvox

+0

調整大小後沒有調整大小的圖像,因此它不會在文件系統中保存任何新圖像。 – doflip

回答

0

我還有一些參考。我以前用過phpthumb庫。它根據原始圖像大小和模式(橫向或縱向)調整圖像大小。

下面是一些參考: -

Resizing the image in php for viewing purposes only

Resize image and display without saving it

http://joedesigns.com/v22/?page=scripts_widgets&id=67

http://phpthumb.sourceforge.net/

+0

我編輯的問題,因爲沒有腳本包含在我的網頁,有沒有辦法做到這一點,沒有PHP函數'imagecopyresampled'? – doflip

+0

@doflip其實我不知道是否有任何解決方案沒有PHP功能。但是當我發現一些與你的問題有關的鏈接時,我使用了'phpthumb'庫,所以我想和你分享一下。 – Roopendra