2009-02-10 134 views
1

我一直在尋找一種方式來動態地創建縮略圖使用PHP和GD但每次我選擇一個大的圖像可能10MegaPixels約4-5MB它給人的錯誤PHP縮略圖

**images/Surabhi_Cow.jpgimages/tn/Surabhi_Cow.jpg 
Fatal error: Allowed memory size of 31457280 bytes exhausted (tried to allocate 10368 bytes) in C:\Program Files\xampp\htdocs\MySite\Staff\test.php on line 51** 

更改php.ini中的memory_limit的到60的技巧,但我的主機只允許memory_limit到32M。我還有什麼其他選項可以隨時生成縮略圖? 我檢查了phpThumb(),但並沒有真正得到它。所以歡迎任何其他選項!

+0

是否有可能在命令行運行某些東西? – 2009-02-10 06:10:08

回答

3

您想使用ImageMagick。它比GD更有效地處理大圖像。

+0

非常適合這種情況,重採樣效果很好。 – Syntax 2009-02-10 14:05:11

0

考慮使用基於命令行的方法。例如,您可以從命令行調用ImageMagick來調整圖像大小。

除此之外,在純PHP,這是很難看你如何編輯比你的內存是大(在RGB格式)圖片...

0

正如其他人所說,如果圖像是大的是放棄GD並切換到ImageMagick的時候了。有一句話警告:在命令行上都這樣做 - 那裏的類包裝是需要重新發明的輪子,每一個都是最後一個。

1

如果您只想生成縮略圖。我推薦這個漂亮的小腳本叫做imagethumb.php。你可以在這裏下載:http://www.olivo.net/software/imagethumb/

這個腳本會產生優異的縮略圖,完全沒有像素結構。它接受您追加到調用腳本的URL的高度或寬度參數。它非常易於使用,並附帶了文檔(您將在2分鐘內閱讀這些文檔)。

我嘗試了其他縮略圖腳本,例如「ThumbsUp」(例如),然後登陸此頁面。順便說一句,它也渲染.png圖像和.gif(如果我沒記錯的話)。如果您有大文件,緩存功能將使您的服務器更容易。另外,我假設你的服務器安裝了GD庫或ImageMagick。祝你好運;)

0

我正在做一些關於這個話題的研究,我發現Imagick更有效地處理更大的圖像。您將通過允許的內存或最大執行時間。更好的方法是使用Imagick庫。檢查onfo如何使用Imagick在飛行generate thumbnails with php