0

Я делаю галерею на сайте. И не знаю, какое лучшее решение для него. Нужен совет.Каков наилучший способ сохранения/отображения изображений? (не blob vs. txt)

По моему мнению, существует два способа работы с изображениями.

  1. Пользователь загружает изображения. Я сохраняю его только на сервере только с его первоначальным размером. И затем, когда есть необходимость отображать это изображение на экране, я изменяю его размер до нужного размера, например, как аватар. Поэтому я сохраняю только ОДИН образ оригинального размера и изменяю его размер до ЛЮБОГО правильного размера ПРАВО ПЕРЕД показа.

  2. Пользователь загружает изображения. Я сохраняю его на сервере с оригинальным размером, а также создаю и сохраняю несколько копий (размер эскизов), например, размер аватара, erc. Таким образом, если изображение отображается, оно не изменяется каждый раз при его отображении, а только копия надлежащего размера.

Я думаю, что второй способ лучше. Потому что нет необходимости тратить силы сервера на изменение размеров изображений каждый раз. Но что, если я решит изменить дизайн моего сайта и некоторые размеры изображений на нем будут также изменены? Я получаю ситуацию с большим количеством изображений на сервере, который не соответствует новому дизайну.

Во всех разных форумах они объясняют, как создавать галереи, и каждый раз, когда они говорят, что копии уменьшенных копий также создаются и сохраняются. Но похоже, что это не имеет смысла, если дизайн изменяется во времени. Пожалуйста, порекомендуйте. Язык - PHP.

ответ

1

Одно из решений, которое другие придумали, представляет собой смесь между ними. Таким образом, пользователь загружает фотографию и сохраняет ее в исходной форме на вашем сервере. Затем, когда нужен аватар, вы проверяете, есть ли у вас аватар, сохраненный на диске (возможно, user12345_50x50.jpg - где 50x50 - ширинаx). Если он существует, покажите это изображение. Если нет, то используйте сервер для изменения размера/обрезания, а затем сохраните это изображение на диске и подайте его пользователю. Это позволит вам запрашивать любой файл размера и обслуживать его по мере необходимости - используя кеширование тех, которые уже были запрошены [Обратите внимание, что это кеш-сервер, поэтому применимо к всем пользователям].

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

Одна реализация, использующая это решение в PHP, это phpthumb: http://phpthumb.sourceforge.net/

Смежные вопросы