Редактор темы

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

MaHarder

Местный
Регистрация
9 Июн 2015
Сообщения
1.054
Рейтинг реакций
288
Баллы
83
Возраст
34
Адрес
Xanten
1/3
Автор темы
1439341378_zipimage.png

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

Чтобы проверить ваш сайт на загружаемость - переходим на сайт гугла: 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
Программка интегрируется в меню (когда вы нажимаете правой кнопкой мыши [ПКМ] по файлу), что очень удобно. И всё, что нам нужно сделать - выбрать изображения и послать их в программку.
fad3ef268ebc0002c1d1f8f2ead8dcc6.png

Открывается окно. Жмём на "Добавить задачу".
1439342996_2015-08-12-03-21-45-screenshot.png
Настраиваем так, чтобы программа оптимизировала под веб.
1439342985_2015-08-12-03-22-20-screenshot.png
Настраиваем
075361f186fc6cf276fd6d4bfebe9eb3.png
Запускаем.
9666b1188bed11e3724d11d6965f4335.png
Будет говорить, что файлы будут перезаписаны. На что я отвечаю "ДА". и Жду окончания.
8d7cb4e62106f52c8fb0f577947b4ac4.png
c0dfcc4d9db700bc354508d4d5c8e46e.png
cc8b5b19aa30023d29b5cf4d9ca8c815.png

На этом всё.
Если у вас на сайте выводятся картинки одной величины или как у меня постеры, которым хватает быть всего-лишь одного размера, то делаем следующее:
Идём "Добавить задачу".
9d7492c692f4f95e0e1d12262ce02c9f.png
Настраиваем ресайз под себя.
1439342931_2015-08-12-03-26-32-screenshot.png
Не забываем выставить эту задачу ПЕРЕД оптимизацией. Запускаем. Вуаля!
4c810dd7108f97cb106f376c9cb0f7a1.png

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

Shrink-O-Matic

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

Итог: Если у вас изображения не статического размера и не так много изображений, то ImBatch самое то. А для более объёмных работ - Shrink-O-Matic.
 
Автор темы
2. Через сервер
Это будет интересно тем, у кого есть root доступ к SSH сервера.
Заходим рутом в консоль (использую PuTTY).
1b25715d929ceddad837371b6890569a.png
Задаём следующие параметры:
Код:
apt-get update && apt-get install jpegoptim optipng
Затем задаём следующую команду:
Код:
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. Его и ставьте.
Выполняем и ждём.
9fa51f3f133abf8fc3f33792a039dfa3.png


ВСЁ!

До:
a2b67093d056523d11d30eecc1a79637.png
После:
1439361366_2015-08-12-08-30-10-screenshot.png
 
Последнее редактирование:
поможете мне с оптимизацией изображения? На сайте много материалов, нужно все изображения оптимизировать, вручную как то долго получается
 
@MaHarder, красавчик!)) Отличный гайд - спасибо огромное!))
 
Автор темы
поможете мне с оптимизацией изображения? На сайте много материалов, нужно все изображения оптимизировать, вручную как то долго получается
а для чего я писал вам это?
у меня более 10000 постеров, которые шринк обработал за пару часиков. если это не устраивает, то через jpegoptim/optipng
 
На главной около 60 изображений,скорость 88 изображение не оптимизовываю, пользуюсь скриптом timthumb.php доволен. Там есть дырка но ее можно закрыть
 
Добрый день.

Есть ошибки в приведенных вами командах. Первая часть команды:
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: ‘ЮЗЕР*’

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

С уважением!
 
Как вариант можно ужать следующим образом:
Код:
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
 
Автор темы
Самый дурной совет! Создается уязвимость в сайте!
по какой-то причине - изображения имеют права 666 (по моему), из-за чего они и не отображаются на сайте. .хтаксесс можно потом и ручками поправить )
спасибо за уточнения. только начал осваиваться
Как вариант можно ужать следующим образом:
спасибо
 
На главной около 60 изображений,скорость 88 изображение не оптимизовываю, пользуюсь скриптом timthumb.php доволен. Там есть дырка но ее можно закрыть
можно подробнее о дыре? Как исправить?
 
@MaHarder, объясните чайнику плиз, "root доступ к SSH сервера" - это какой-то особый доступ? Я просто вчера пробовал сделать подобное, но уже на 1-й команде "apt-get update && apt-get install jpegoptim optipng", получил ошибку, типа нет какого-то файла в такой-то папке, etc по-мойму.
 
разрешена загрузка картинок с других сайтов http://prntscr.com/8rklex и за этого много сайтов поломали.как именно не знаю.типа картинку подгружают с шелом она кешируется а кеш оседает на сайте с этим шелом.просто удаляешь загрузку с других сайтов.и кеш прописываеш что б кешировалась в папке
cache
 
разрешена загрузка картинок с других сайтов http://prntscr.com/8rklex и за этого много сайтов поломали.как именно не знаю.типа картинку подгружают с шелом она кешируется а кеш оседает на сайте с этим шелом.просто удаляешь загрузку с других сайтов.и кеш прописываеш что б кешировалась в папке
cache
Установил, но по Page Speed показатели только ухудшились! Но я только попробовал для постеров на Главной странице.
 
А как массово перевести png в jpg? По началу делал скрины в формате png, со временем понял, что гружу сильно хостинг. Сейчас использую формат jpg. Как мне массово можно перевести формат старых скринов?
 
скрины добавляются через доп поле - [thumb=left]http://site.ru/uploads/posts/2014-06/2405671384_t6i0qqp.png[/thumb]. Если перевести все картинки с сервера в jpg, то старые скрины не отображаются из за смены формата... Может через SQL как то можно перевести значение всех png в jpg???
 

Последние темы Популярные темы

Назад
Сверху