• Авторизация


jhead - радикальная оптимизация JPEG для web 10-04-2008 20:40 к комментариям - к полной версии - понравилось!


Настроение сейчас - век живи - век учись

Об оптимизации графики для web написаны мегабайты статей, но речь в них обычно идет лишь об экономии путем заведомого ухудшения качества jpeg-изображения. Между тем есть неочевидные резервы для оптимизации без какой-либо потери в качестве.

Берем в качестве примера обычный jpeg-файл, например фотографию мерзкого и противного котяры милого домашнего котика Марли (проживает у родителей an-n-ushka).


[320x240]
Исходная картинка весит 78001 байт, что подозрительно много для такого изображения такого размера.
Скачиваем и устанавливаем (есть версии для всех распостраненных операционных систем - Windows/Linux/FreeBSD/MacOS + исходные тексты) небольшую утилиту jhead и натравливаем на данный файл
jhead -purejpg picture.jpg


Любуемся результатом
[320x240]
Изображение зверя похудело до 21098 байт, т.е. более чем в три раза. Качество изображения и сам кот при этом не пострадали.

В чем собственно секрет?
Открываем исходный файл в бинарном редакторе - и видим кучу ненужного нам мусора - модель фотоаппарата, экспозицию, баланс белого и прочую техническую информацию , именуемую EXIF.
Если файл редактировался в "фотошопе", то к этим метаданным еще добавляются цветовые профили, теги и прочая малополезная нам информация (IPTC, XMP etc).

Применяем полученные знания на практике. Переходим в директорию с картинками и выполняем команду


find . -type f -iregex ".*\.jpe?g?" -exec jhead -purejpg {} \;


Voila! На 2-х миллионах файлов с пользовательскими аватарами ли.ру экономия дискового пространства составила порядка 25%, загрузка исходящего трафика на сервере с аватарами упала с 50-ти до 35 Мбит в секунду.

p.s. Не стоит необдуманно подходить к использованию данного инструмента. Если вам по каким-то причинам необходимо сохранять exif-информацию (и выкинуть все остальное), то есть смысл предварительно почитать документацию по jhead (глава General metadata options).
вверх^ к полной версии понравилось! в evernote
Комментарии (8):
Sb0y 10-04-2008-20:55 удалить
Огромное спасибо.
levnovikov 10-04-2008-20:58 удалить
завсегда пожайлуста;-)
Dagich 10-04-2008-21:08 удалить
реально офигеть!!!!!!
беру на вооружение!!
11-04-2008-22:34 удалить
А если добавить флажки -di и -dx, то можно еще маленько мусора из файла выкинуть. (в -purejpg они не входят в виндошном билде)
Lurk 14-05-2008-15:07 удалить
О-о-о как щикарно!
Спасибо за наводку:)
Topbot30 14-05-2008-16:40 удалить
Вы попали в top30 на яндексе самых обсуждаемых тем в блогосфере. Поэтому копия вашего поста доступна в ленте по ссылке
Почитать текст со всеми комментариями можно тут
Это Ваш 1-й ТОПовый пост за последний год. Посмотреть статистику автора можно тут.
Этот "бот не имеет отношения к Яндексу" © НадежныйИсточник [x1]
pupunussi 19-06-2008-16:45 удалить
Я и так всегда в GIMP'е при сохранении убираю всякие галки вроде "Save EXIF", "Save preview" и в таком духе, получается довольно оптимально. Надо поробовать, может и есть что ещё выкинуть.
levnovikov 19-06-2008-17:20 удалить
после гимпа тоже остается мусор (даже при снятых галках)


Комментарии (8): вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник jhead - радикальная оптимизация JPEG для web | levnovikov - Дневник levnovikov | Лента друзей levnovikov / Полная версия Добавить в друзья Страницы: раньше»