Оптимізувати зображення можна декількома способами:
Оптимізація без зміни вихідних файлів можлива завдяки модулю PageSpeed. Для цього в його налаштуваннях можна включити такі опції:
На серверах хостингу присутній ряд утиліт, За допомогою яких можна оптимізувати файли зображень.
Ними можна скористатися безпосередньо через консоль, підключившись до хостингу по SSH. Також можна створити власний скрипт, який буде звертатися до них і виконувати необхідні операції. Існує безліч вже готових скриптів для оптимізації зображень, Ці скрипти зазвичай включають в себе лише набір команд для зазначених утиліт і по черзі запуск для відповідних зображень.
Наприклад, для оптимізації файлів JPG / JPEG і PNG можна використовувати такий bash-скрипт.
-o
.output
поточного каталогу, якщо ключ -o
зазначений не був.Щоб завантажити і запустити скрипт оптимізації, виконайте команди:
wget https://gist.githubusercontent.com/lgiraudel/6065155/raw/24f667559eee61dd00a99a9940e06b46a125d3ec/optimize.sh sh optimize.sh -i ~/example.com/images/input -o ~/example.com/images/output
Параметри:
-i
або --input
- визначає каталог, в якому розташовані оптимізуються зображення.-o
або --output
- визначає каталог, куди будуть зберігатися всі оптимізовані зображення.-q
або --quiet
- відключає виведення всіх дій.-s
або --no-stats
- відключає висновок статистики розміру.-h
або --help
- висновок довідки за вказаними ключам.Скрипт використовує утиліти:
Утиліта для оптимізації зображень без втрати якості. синтаксис:
pngcrush опції вихідний_файл.png оптимізований_файл.png
Варіанти використання утиліти:
pngcrush -rem alla -rem text -reduce -brute початковий_файл.png оптимізований_файл.png
for file in ~/example.com/www/images/*.png ; do pngcrush -reduce -brute -rem alla -rem gAMA -rem cHRM -rem iCCP -rem sRGB "$file" "${file%.png}-crushed.png" && mv "${file%.png}-crushed.png" "$file" ; done
example.com/www/images
вкажіть шлях до каталогу з зображеннями. Зверніть увагу, оптимізація не проводиться рекурсивно по всіх каталогах, а обмежується тільки зазначеним.Більш детальну інформацію по роботі з утилітою можна отримати за допомогою команди:
pngcrush --help
Утиліта стиснення та оптимізації зображення, створена на основі pngcrush. Формати зображень, які можуть бути перетворені в оптимізований PNG:
Для оптимізації одиничного файлу потрібно виконати команду (Файл автоматично буде перетворений і замінений оптимізованою версією):
optipng ~/example.com/www/images/image.png
Для оптимізації всіх файлів в одному каталозі потрібно виконати команду:
find ~/example.com/www/images/ -iname *.png -print0 | xargs -0 optipng -o7
example.com/www/images/
вкажіть шлях до каталогу зображень. *.png
вкажіть потрібний формат файлів у вигляді *.bmp
або інші.Більш детальну інформацію по роботі з утилітою можна отримати, виконавши команду:
optipng --help
Утиліта для роботи з анімованими GIF-файлами. З її допомогою можна проводити безліч дій: оптимізувати, масштабувати, обрізати.
Оптимізація GIF-анімації з втратою якості:
gifsicle -03 --lossy=80 -o оптимізований_файл.gif вихідний_файл.gif
–lossy=XX
.Більш детальну інформацію по роботі з утилітою можна отримати, виконавши команду:
gifsicle --help
Утиліта для оптимізації зображень JPEG і JPG.
Популярні способи використання утиліти:
jpegoptim image.jpg
.jpg
в каталозі потрібно виконати команду так:jpegoptim ~/example.com/www/images/*.jpg
example.com/www/images/
вкажіть шлях до каталогу зображень.jpegoptim image.jpg --strip-all
jpegoptim image.jpg --all-progressive
jpegoptim -m85 image.jpg
-mXX
.Більш детальну інформацію по роботі з утилітою можна отримати, виконавши команду:
jpegoptim --help
Ще одна утиліта для оптимізації зображень JPEG і JPG без втрати якості.
Популярні способи використання утиліти:
jpegtran -copy none -optimize -outfile оптімізірофанний_файл.jpg вихідний_файл.jpg
-copy none
.jpegtran -copy none -optimize -progressive -outfile оптімізірофанний_файл.jpg вихідний_файл.jpg
jpegtran -quality 80 -copy none -optimize -outfile оптімізірофанний_файл.jpg вихідний_файл.jpg
-quality XX
.Більш детальну інформацію по роботі з утилітою можна отримати, виконавши команду:
jpegtran --help