PHP / JS – создание эскизов на лету или сохранение в виде файлов

Для веб-приложения для размещения изображений:

Для моих сохраненных изображений возможно ли создавать эскизы «на лету» с помощью PHP (или что-то еще), или мне нужно сохранить на диск 1 или более миниатюр разных размеров и просто загрузить их?

Любая помощь приветствуется.

Сохраните миниатюры на диске. Обработка изображений занимает много ресурсов и, в зависимости от размера изображения, может превышать допустимый предел памяти для php. Это меньше беспокоит, если у вас есть собственный сервер только с вашим приложением, но для масштабирования изображений все еще требуется много мощности процессора и памяти. Если вы планируете создавать эскизы на лету в любом случае, вам не нужно сильно изменять – по первому запросу создайте эскиз из исходного файла, сохраните его на диск и после последующих запросов просто прочитайте его с диска.

Я использую phpThumb , так как это лучший из обоих миров. Вы можете создавать эскизы «на лету», но автоматически копирует изображения для ускорения будущих запросов. Он создает приятную обертку вокруг библиотек GD и ImageMagick. Стоит посмотреть!

Было бы гораздо лучше кэшировать миниатюры. Генерация их на лету будет очень облагаться налогом в системе.

Это зависит от шаблона использования сайта, но, в основном, сколько раз вы ожидаете просмотра каждого изображения?

В случае эскизов они, скорее всего, будут довольно долгое время (изображение загружается один раз и никогда не изменяется, поэтому миниатюра тоже не изменяется), поэтому обычно полезно создавать при загрузке полного изображения и хранить их позже. Если сайт не будет полностью мертв, они будут рассмотрены многие (сотни или тысячи) раз за всю их жизнь, а в наши дни диск намного дешевле, чем латентность. Это также становится более значительным, так как загрузка на сервере увеличивается, конечно.

И наоборот, для чего-то вроде биржевых карт, которые обновляются каждый час (если не чаще), это будет ситуация, когда вам лучше создать их «на лету», чтобы не тратить время процессора на постоянное генерирование изображений, которые нет пользователь когда-либо увидит.

Или, если вы хотите получить фантазию, вы можете оптимизировать обработку любого шаблона доступа путем генерации изображений «на лету» в первый раз, когда они нужны, а затем показ предварительно сгенерированного потом, до тех пор, пока данные, полученные от изменений, после чего вы удалите его, чтобы он был восстановлен в следующий раз, когда он понадобится. Но это было бы излишним для чего-то статичного, как миниатюры, ИМО.

проверить библиотеку gd и imagemagick