Dismiss Notice
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Сжатие и / или оптимизация изображений

Discussion in 'Модули DLE' started by MaHarder, Aug 12, 2015.

12.08.15 в 09:56
01.04.20 в 23:05
114
19,474
9
  1. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    [​IMG]

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

    Чтобы проверить ваш сайт на загружаемость - переходим на сайт гугла: https://developers.google.com/speed/pagespeed/insights/
    Для начала, скопируйте всю папку upload с сервера на ваш компьютер. (Лучше ту папку, где хранятся ваши изображения)
    В моём случае - эта папка весит около 1.5 гигов.

    Начнём.
    Я покажу вам оптимизацию с серверной стороны (у кого есть рут доступ) и при помощи программок.

    1.Программы
    Пока папка качается, можно установить две программки: ImBatch и Shrink-O-Matic.
    ImBatch: http://www.highmotionsoftware.com/ru/products/imbatch
    Shrink-O-Matic: http://toki-woki.net/p/Shrink-O-Matic/

    ImBatch
    Программка интегрируется в меню (когда вы нажимаете правой кнопкой мыши [ПКМ] по файлу), что очень удобно. И всё, что нам нужно сделать - выбрать изображения и послать их в программку.
    [​IMG]

    Открывается окно. Жмём на "Добавить задачу".
    [​IMG]
    Настраиваем так, чтобы программа оптимизировала под веб.
    [​IMG]
    Настраиваем
    [​IMG]
    Запускаем.
    [​IMG]
    Будет говорить, что файлы будут перезаписаны. На что я отвечаю "ДА". и Жду окончания.
    [​IMG][​IMG][​IMG]

    На этом всё.
    Если у вас на сайте выводятся картинки одной величины или как у меня постеры, которым хватает быть всего-лишь одного размера, то делаем следующее:
    Идём "Добавить задачу".
    [​IMG]
    Настраиваем ресайз под себя.
    [​IMG]
    Не забываем выставить эту задачу ПЕРЕД оптимизацией. Запускаем. Вуаля!
    [​IMG]

    Плюсы программы:
    • Быстрая
    • Встроена в меню
    • Многофункциональна
    • Есть русский язык (по некоторым причинам я переставил на английский)
    • Даёт результат
    Минусы:
    • Не годна для огромных количеств
    • Проблемы для иностранных компов в плане руссификации. У меня немецкая винда стоит и даже при российском уникоде, многие символы плохо отображаются

    Shrink-O-Matic

    Программка устанавливается при помощи Adobe Air. Будет предложено установить её, если такой нет на компе. Иначе работать не будет.
    Сразу плюсы:
    • Заточена под оптимизацию
    • Лёгкая
    • Может обработать огромный поток данных (проверенно)
    Минусы:
    • Не столь гибкая, как ImBatch
    • Заточена для оптимизации
    Начнём. Открываем программку.
    [​IMG][​IMG]
    Настраиваем размеры:
    1. По пикселям. ВАЖНО! Когда вы убираете галочку с ненужного параметра, то он не будет принят во внимание. Это путает, так как другая галочка гаснет сразу же. Ресайз идёт автоматический, т.е. другая сторона подстраивается.
    2. По процентам.
    [​IMG]
    Думаю - здесь всё понятно.
    [​IMG]
    1. как обрабатывать название
    2. куда сохранять. если не указано, то на исходное место.
    [​IMG]
    перетягиваем изображения и / или папку(и) сюда.
    [​IMG]
    Ждём! Всё!

    Итог: Если у вас изображения не статического размера и не так много изображений, то ImBatch самое то. А для более объёмных работ - Shrink-O-Matic.
     
    • Нравится Нравится x 9
  2. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    2. Через сервер
    Это будет интересно тем, у кого есть root доступ к SSH сервера.
    Заходим рутом в консоль (использую PuTTY).
    [​IMG]
    Задаём следующие параметры:
    Code:
    apt-get update && apt-get install jpegoptim optipng
    Затем задаём следующую команду:
    Code:
    find /путь/до/папки/с/картинками/public_html/uploads/posts -name '*.jpg' | xargs jpegoptim -m85 --strip-all && find /путь/до/папки/с/картинками/public_html/uploads/posts '*.png' -print -exec optipng -o7 -quiet -keep -preserve {} \; && chmod -R 777 /путь/до/папки/с/картинками/public_html/uploads/posts && sudo chown -R admin /путь/до/папки/с/картинками/public_html/uploads/posts
    Заменяем пути.
    ЮЗЕР* - у меня на сервере два юзера, рут и тот пользователь, который управляет FTP. Его и ставьте.
    Выполняем и ждём.
    [​IMG]


    ВСЁ!

    До:
    [​IMG]
    После:
    [​IMG]
     
    Last edited: Mar 29, 2016
    • Нравится Нравится x 9
  3. Садияр

    Садияр Бывалый

    Messages:
    193
    Likes Received:
    10
    Best Answers:
    0
    поможете мне с оптимизацией изображения? На сайте много материалов, нужно все изображения оптимизировать, вручную как то долго получается
     
  4. tish88

    tish88 Бывалый

    Messages:
    419
    Likes Received:
    88
    Best Answers:
    0
    @MaHarder, красавчик!)) Отличный гайд - спасибо огромное!))
     
  5. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    а для чего я писал вам это?
    у меня более 10000 постеров, которые шринк обработал за пару часиков. если это не устраивает, то через jpegoptim/optipng
     
  6. Romantv

    Romantv Забанен

    Messages:
    6,946
    Likes Received:
    1,815
    Best Answers:
    6
    На главной около 60 изображений,скорость 88 изображение не оптимизовываю, пользуюсь скриптом timthumb.php доволен. Там есть дырка но ее можно закрыть
     
  7. paxim

    paxim Новичок

    Messages:
    48
    Likes Received:
    8
    Best Answers:
    0
    Добрый день.

    Есть ошибки в приведенных вами командах. Первая часть команды:
    find /var/www/путь/до/сайта/uploads/posts -name *.jpg -exec jpegoptim --strip-all '{}'
    нужно указать выбор только файлов, исключив папки
    -type f
    Также кавычки для скобок не нужны, можно просто {}. Это не ошибка, но просто лишние символы, find и без этого обработает корректно любой файл, независимо от языка названия и символов.

    Вторая часть команды:
    find /var/www/путь/до/сайта/uploads/posts -name *.png -exec optipng -o7 '{}' \;
    та же ошибка.

    Третья часть:
    chmod -R 777 /var/www/путь/до/сайта/uploads/posts
    Самый дурной совет! Создается уязвимость в сайте!

    4-я часть:
    sudo chown -R ЮЗЕР* /var/www/путь/до/сайта/uploads/posts

    Второе, нужно использовать не "ЮЗЕР*", а "ЮЗЕР:" ! Иначе будет ошибка:
    chown: invalid user: ‘ЮЗЕР*’

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

    С уважением!
     
    • Нравится Нравится x 2
  8. Keiskar

    Keiskar Забанен

    Messages:
    855
    Likes Received:
    386
    Best Answers:
    0
    Как вариант можно ужать следующим образом:
    Code:
    find /home/user/public_html/images -iname *.jpg | xargs jpegoptim --max=90 --all-progressive --strip-all --strip-com --strip-exif --strip-iptc --strip-icc
    
    find public/images/ -iname *.png -print0 |xargs -0 optipng -o7
     
    • Нравится Нравится x 2
  9. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    по какой-то причине - изображения имеют права 666 (по моему), из-за чего они и не отображаются на сайте. .хтаксесс можно потом и ручками поправить )
    спасибо за уточнения. только начал осваиваться
    спасибо
     
  10. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    у меня наоборот, такая ошибка была когда : ставил.
     
  11. Renovatio

    Renovatio Staff Member VIP Кинотрафик v2

    Messages:
    227
    Likes Received:
    78
    Best Answers:
    0
    можно подробнее о дыре? Как исправить?
     
  12. Renovatio

    Renovatio Staff Member VIP Кинотрафик v2

    Messages:
    227
    Likes Received:
    78
    Best Answers:
    0
    @MaHarder, объясните чайнику плиз, "root доступ к SSH сервера" - это какой-то особый доступ? Я просто вчера пробовал сделать подобное, но уже на 1-й команде "apt-get update && apt-get install jpegoptim optipng", получил ошибку, типа нет какого-то файла в такой-то папке, etc по-мойму.
     
  13. Romantv

    Romantv Забанен

    Messages:
    6,946
    Likes Received:
    1,815
    Best Answers:
    6
    разрешена загрузка картинок с других сайтов http://prntscr.com/8rklex и за этого много сайтов поломали.как именно не знаю.типа картинку подгружают с шелом она кешируется а кеш оседает на сайте с этим шелом.просто удаляешь загрузку с других сайтов.и кеш прописываеш что б кешировалась в папке
    cache
     
    • Нравится Нравится x 2
  14. TopicStarter Overlay
    MaHarder

    MaHarder Местный

    Messages:
    1,054
    Likes Received:
    326
    Best Answers:
    0
    видать у вас не убунту/дебиан
     
  15. Renovatio

    Renovatio Staff Member VIP Кинотрафик v2

    Messages:
    227
    Likes Received:
    78
    Best Answers:
    0
    Установил, но по Page Speed показатели только ухудшились! Но я только попробовал для постеров на Главной странице.
     
  16. Romantv

    Romantv Забанен

    Messages:
    6,946
    Likes Received:
    1,815
    Best Answers:
    6
  17. djusel

    djusel Бывалый

    Messages:
    423
    Likes Received:
    50
    Best Answers:
    0
    А как массово перевести png в jpg? По началу делал скрины в формате png, со временем понял, что гружу сильно хостинг. Сейчас использую формат jpg. Как мне массово можно перевести формат старых скринов?
     
  18. djusel

    djusel Бывалый

    Messages:
    423
    Likes Received:
    50
    Best Answers:
    0
    скрины добавляются через доп поле - [thumb=left]http://site.ru/uploads/posts/2014-06/2405671384_t6i0qqp.png[/thumb]. Если перевести все картинки с сервера в jpg, то старые скрины не отображаются из за смены формата... Может через SQL как то можно перевести значение всех png в jpg???
     
  19. Romantv

    Romantv Забанен

    Messages:
    6,946
    Likes Received:
    1,815
    Best Answers:
    6
    • Нравится Нравится x 2
  20. Romantv

    Romantv Забанен

    Messages:
    6,946
    Likes Received:
    1,815
    Best Answers:
    6
    • Нравится Нравится x 1