2011-01-28 122 views
2

有沒有辦法在服務器上顯示縮小圖像並調整大小而不保存縮小的圖像?就像圖像是500x500 250KB,我希望它在用戶的瀏覽器中顯示50x50 45kb。PHP顯示圖像縮小和調整大小

如果沒有辦法,我該如何臨時創建一個去文件夾並在稍後粘貼後再刪除?

+1

這是可能的,但不是很理想,因爲縮小圖像非常昂貴。幾十個同時請求調整大小的圖像可能會給服務器帶來很大壓力。後者可能可以使用清理腳本(例如「刪除所有超過1小時的文件」),但您必須添加更詳細的信息才能獲得有關該提示的提示 – 2011-01-28 01:24:18

回答

3
header("Content-type: image/jpeg"); 
$image = imagecreatefromjpeg($url); 
$thumbImage = imagecreatetruecolor(50, 50); 
imagecopyresized($thumbImage, $image, 0, 0, 0, 0, 50, 50, 500, 500); 
imagejpeg($thumbImage,"",85); 
imagedestroy($image); 
imagedestroy($thumbImage); 

但是你應該緩存結果以降低服務器的負載。

+0

cooooool我不知道這 – 2011-01-28 01:31:23

-1

聽起來你所要做的就是設置HTML圖像標籤的heightwidth屬性。

<img src='blah' height=50 width=50 /> 

百分比也可以使用。

CSS允許多一點控制,並且可以應用於所有圖像(或某個類的所有圖像)。有了它,您可以指定max-heightmax-width,這不會影響較小的圖像。下面將適用於所有圖像與類resizedimages

.resizedimages {max-height: 400px; max-width: 400px} 

如果你不感興趣的保存調整後的圖像,然後這聽起來像完全是一個客戶端的問題。 PHP與它無關(除了可能呈現必要的HTML)

注意:如果用戶去右擊並保存在圖像上,它仍然是完整的250kB。這些純粹是顯示問題。如果這個方面對你很重要,那麼除了保存縮小的副本之外,我不知道任何其他方法。

這些可能不是最好的資源,只有幾個出現在谷歌的頂部附近。

http://www.w3schools.com/tags/tag_img.asp
http://www.fastechws.com/tricks/web/image-max-width-height.php

0

我會強烈建議,而不是試圖調整下來一個大的圖像,你在上傳時店的縮小版,並保持原來的版本。使用像S3這樣的雲託管,你可以做到這一點便宜。

最合乎邏輯的過程是一次執行昂貴的操作(縮放照片)一次而不是多次。

回答您的其他問題,您可以使用GD或imagemagick縮小圖像。有數百個關於如何做到這一點的教程。如果你想要走這條路,我會Google教程,然後走了。