GarfieldOfficial
@GarfieldOfficial
Помог? - Отметь решением.

Как изменять размер фото с помощью GET-запросов?

Добрый день.
Недавно лазил по гитхабу, понравилась один аватар, открыв его в отдельной вкладке я заметил странный URL адрес, который выглядил так: {ИМЯ}?v={ВЕРСИЯ}&s={размер}(максимум 370). Данная фича мне понравилась. То есть смотрите, вроде как на хостинге несколько изображений могут быть под одним названием, если судить по "v={ВЕРСИЯ}", и размер изменяется сам, когда пользователь изменяет последнее значение. Понравилась тем, что на данный момент я как новенький в веб-программировании, делаю на хостинге папки по типу 150(пикселей) и изменяю определенную фотографию под этот размер и кидаю туда, и так мне приходится копировать одно и тоже изображение во все папки с размерами, изменяя их размер лишь.

Лазил по разным форумам, но ответа так и не нашел. Буду искренне благодарен если кто-то кинет что-то похожее(либо это) и сможет немного разъяснить.

P.s.: Указал тэг php, ибо не точно знаю к чему это относится
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
search
@search
мама говорит что я особенный
Стратегия такая: на сервере хранится только оригинальное изображение. Когда юзер пытается получить сжатое, он идет на адрес, например /images/userpic-100x100.jpg Если по этому адресу еще нет такого изображения, то сервер перенаправит юзера на скрипт /generate.php?address=/images/userpic-100x100.jpg. Этот скрипт сожмёт оригинальное изображение, сохранит его по адресу /images/userpic-100x100.jpg и покажет пользователю. В следующий раз при запросе адреса /images/userpic-100x100.jpg будет показано уже сгенерированное изображение.

Для того чтоб сервер знал, куда перенаправлять юзера в случае, если сжатого изображения еще нет, нужно в файл .htaccess добавить этот код:

RewriteCond %{REQUEST_URI} ^/images/
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule (.*) /generate.php?address=$1 [L]


Ну и в файле generate.php уже разбирать переменную $_GET['address'], выяснять какую именно картинку хотел получить юзер, жать её, сохранять и перенаправлять обратно на $_GET['address'].
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
На хостинге имеется только 1 оригинальное изображение. Остальные, сходя из оригинала, генерируются сами по определенным папкам. Делается, если мне не изменяет память, через php-gd.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы