Каков наилучший способ сохранения / отображения изображений?(не blob против txt) - PullRequest
0 голосов
/ 27 декабря 2011

Я делаю галерею на сайте.И не знаю, какое для этого лучшее решение.Нужен совет.

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

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

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

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

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

1 Ответ

1 голос
/ 27 декабря 2011

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

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

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

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