Я смотрел на способ динамического создания эскизов с использованием 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 (), но на самом деле не понял. Поэтому любые другие варианты приветствуются!
Вы хотите использовать ImageMagick
. Это намного эффективнее при обработке больших изображений, чем GD.
Если все, что вы хотите сделать, это создавать эскизы. Я рекомендую этот красивый маленький скрипт под названием imagethumb.php . Вы можете скачать его здесь: http://www.olivo.net/software/imagethumb/
Этот скрипт создает превосходные эскизы с абсолютно никакой пикселизацией. Он принимает аргумент высоты или ширины, который вы добавляете к URL-адресу, вызывающему сценарий. Он действительно очень прост в использовании и поставляется с документацией (которую вы будете читать всего за 2 минуты).
Я попробовал другие скрипты, такие как «ThumbsUp» (например), прежде чем приступать к этому. BTW, он также отображает .png изображения, а также .gif (если я правильно помню). Функция кеша упростит работу на вашем сервере, если у вас большие файлы. Кроме того, я предполагаю, что на вашем сервере установлена библиотека GD или ImageMagick . Удачи 😉
Как говорили другие, если изображения такие большие, пришло время сбросить GD и переключиться на ImageMagick. Одно слово предупреждения, хотя: сделайте все это в командной строке – в оболочках класса есть колеса, которые нуждаются в чертовски хорошем повторном изобретении, каждый последний.
Подумайте об использовании подхода на основе командной строки. Например, вы можете вызывать ImageMagick из командной строки для изменения размеров изображений.
Кроме того, в чистом PHP трудно понять, как вы можете редактировать изображения, которые больше (в формате RGB ), чем ваша оперативная память …
Я занимался некоторыми исследованиями по этой теме, и я нашел Imagick намного более эффективным для манипулирования большими изображениями. Вы либо передадите разрешенную память, либо максимальное время выполнения. Лучший подход – использовать библиотеку Imagick. Проверьте onfo на том, как создавать эскизы с php на лету, используя Imagick.