Миниатюры PHP - PullRequest
       25

Миниатюры PHP

1 голос
/ 10 февраля 2009

Я искал способ динамически создавать миниатюры с использованием PHP и GD, но каждый раз, когда я выбираю большое изображение, может быть, 10 Мегапикселей, около 4-5 МБ, выдает ошибку

**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**

Изменение memory_limit в php.ini до 60 делает свое дело, но мой хост позволяет только memory_limit до 32M. Какие еще варианты у меня есть для создания эскизов на лету? Я проверил phpThumb (), но на самом деле не понимаю. Так что любые другие варианты приветствуются!

Ответы [ 5 ]

3 голосов
/ 10 февраля 2009

Вы хотите использовать ImageMagick. Он намного эффективнее обрабатывает большие изображения, чем GD.

1 голос
/ 10 февраля 2009

Если все, что вы хотите сделать, это создать миниатюры. Я рекомендую этот хороший маленький скрипт под названием imagethumb.php . Вы можете скачать его здесь: http://www.olivo.net/software/imagethumb/

Этот скрипт создает отличные миниатюры без какой-либо пикселизации. Он принимает аргумент высоты или ширины, который вы добавляете в URL, который вызывает скрипт. Он действительно прост в использовании и поставляется с документацией (которую вы прочтете за 2 минуты).

Я пробовал другие сценарии миниатюр, такие как «ThumbsUp» (например), прежде чем приземлиться на этот. Кстати, он также отображает изображения .png, а также .gif (если я правильно помню). Функция кэширования облегчит работу на вашем сервере, если у вас большие файлы. Также я предполагаю, что на вашем сервере установлена ​​библиотека GD или ImageMagick . Удачи ;)

0 голосов
/ 08 ноября 2012

Я провел небольшое исследование по этой теме и обнаружил, что Imagick гораздо более эффективен для манипулирования большими изображениями. Вы либо передадите разрешенную память или максимальное время выполнения. Лучшим подходом было бы использовать библиотеку Imagick. Проверьте информацию о том, как генерировать миниатюры с php на лету с помощью Imagick.

0 голосов
/ 10 февраля 2009

Как уже говорили другие, если изображения такие большие, пришло время отказаться от GD и переключиться на ImageMagick. Одно слово предостережения: сделайте все это из командной строки - классные фантики, есть колеса, которые нуждаются в чертовски хорошем изобретении, каждый последний.

0 голосов
/ 10 февраля 2009

Рассмотрите возможность использования подхода на основе командной строки. Например, вы можете вызвать ImageMagick из командной строки для изменения размера изображений.

Кроме этого, в чистом PHP трудно понять, как вы можете редактировать изображения, которые больше (в формате RGB ), чем ваша RAM ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...