ФорумПрограммированиеPHP для идиотов → Ресайз больших фото

Ресайз больших фото

  • nuklon

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz 25 мая 2016 г. 19:51, спустя 22 часа 18 минут 2 секунды

    Ну же, пхп-маньяки, как же решить? Ресайз/кроп + кеш работает, нужно чтобы еще сервер сразу отдавал нужную картинку из кеша, как показал @adw0rd, но у него ресайз происходит по ссылке с передачей параметров

    После чего делаешь запрос на

    http://www.example.org/resize/200/120/my.png

    и получаешь в нужном размере картинку

    @adw0rd, и соответственно в конфиге сервера можно прописать

    location ~* ^/resize/([\d-]+)/([\d-]+)/(.+)$
    но у меня картинка ресайзятся не по ссылке, а просто кодом, и html-ле отображается реальный путь к реальной картинке.
    Как же настроить для такого случая сервер?
    pi+
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 25 мая 2016 г. 21:48, спустя 1 час 57 минут 19 секунд

    Ты уже всё получил.

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26614 Репутация: N Группа: в ухо

    Spritz 25 мая 2016 г. 22:29, спустя 41 минуту 23 секунды

    Ты уже всё получил.

    @artoodetoo, вот теперь ты понял почему я просто забил хуй на все вопросы )))

    Сапожник без сапог
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 25 мая 2016 г. 22:56, спустя 26 минут 28 секунд

    ресайзятся не по ссылке, а просто кодом

    гений формулировок

    не всё полезно, что в swap полезло
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 26 мая 2016 г. 5:10, спустя 6 часов 13 минут 48 секунд

    ресайзятся не по ссылке, а просто кодом

    гений формулировок

    @master, +

    Спустя 15 сек.

    @nuklon, генерируй кодом ссылку, какие проблемы?

    adw/0
  • nuklon

    Сообщения: 15 Репутация: N Группа: Кто попало

    Spritz 26 мая 2016 г. 6:11, спустя 1 час 1 минуту 16 секунд

    Бля, столько умных слов..

    гений формулировок

    @master,
    Вот код с пыхи -

    <img src="/resize/100/-/media/users/avatars/ca9c1d88e3c5322bb822cfc9add1f38010913.jpg">
    Тут ресайзится по сслыке, т.е, здесь resize это не папка, а скрипт, который все дела делает. В чем минус, поменяв "-" на цифру я создал на сервере еще картинку размером 100хЦифра. Чтобы такой хуйни не было я ресайзю так
    <img src="<?=thumb('uploads/ob/photo.jpg', '100x100', [ 'wm' => 'i/wm.png', 'wm_position' =>  'BL' ])?>">
    . Пользователь и поисковик в браузере видит обычный путь до картинки (а не до скрипта)
    uploads/ob/100x100/photo.jpg
    . В этом случае, даже если поменять цифры в пути, серверу пох.
    Разницы не чувствуешь? У меня ссылки на какой-то скрипт вообще нет.

    @nuklon, генерируй кодом ссылку, какие проблемы?

    @adw0rd, сгенерировать-то можно, но двойная работа получается - Вместо того, чтобы передать в src уже сгенерированный путь к фото, мне, получается, нужно сгенерить ссылку до другого скрипта, который будет делать ту же работу.

    Бля, поцы, не заставляйте да тыщи раз писать одно и то же, вы посты читаете?..


    Решение такое же как и на хабре

    echo thumb(__DIR__ . '/images/Chrysanthemum.jpg', '200x100', [ "watermark" => "right top" ]);
    только они как-то это связывают с сервером
    
    RewriteCond %{REQUEST_URI} ^(/static/)
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.*)$ thumb.php?file=$1 [L]
    

    Вопрос: Я не понимаю вот эту связь, потому что echo thumb( работает и без настроек для сервера. Кто может объяснить без выебонов, давайте

    pi+
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 26 мая 2016 г. 6:17, спустя 6 минут 6 секунд

    RewriteCond %{REQUEST_URI} ^(/static/)
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteRule ^(.*)$ thumb.php?file=$1 [L]

    @nuklon, ну вот же решение и есть.
    если картинка нужного размера есть - она отдаётся апачем как файл
    если нет - вызывается скрипт thumb.php, который делает ресайз под нужный размер. только нужно в конце этого скрипта отдать саму картинку, т.е. вывести заголовок content-type и сделать
    echo(file_get_contents('thumb.jpg'))

    Спустя 60 сек.

    Без выебонов невозможно. Суть обучения - не в том, чтобы у тебя заработала конкретная задача, а в том, чтобы заработали нужным образом твои мозги.

    не всё полезно, что в swap полезло
  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 26 мая 2016 г. 6:49, спустя 31 минуту 46 секунд

    . В чем минус, поменяв "-" на цифру я создал на сервере еще картинку размером 100хЦифра. Чтобы такой хуйни не было

    @nuklon, минус то в чем? Кто сидит перебирает цифры? Если прям паранойя, то в регулярке укажи допустимые цифры. Фигней страдаешь

    Спустя 76 сек.

    Nginx не скрипит. Это пхп твой "скрипт". Модуль в Nginx в раз 10 быстрее ресайзит

    Спустя 124 сек.

    Для тебя сейчас это двойная работа. А когда у тебя будет проект посерьезнее, то ты начнёшь из js генерить ссылки на картинки и будешь счастлив

    adw/0
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 26 мая 2016 г. 8:01, спустя 1 час 12 минут 31 секунду

    Суть обучения - не в том, чтобы у тебя заработала конкретная задача, а в том, чтобы заработали нужным образом твои мозги.

    thumbsup

    ιιlllιlllι унц-унц
  • phpdude

    Сообщения: 26614 Репутация: N Группа: в ухо

    Spritz 26 мая 2016 г. 11:09, спустя 3 часа 7 минут 42 секунды

    Суть обучения - не в том, чтобы у тебя заработала конкретная задача, а в том, чтобы заработали нужным образом твои мозги.

    thumbsup

    @artoodetoo, плюсик

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!