-Музыка

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в levnovikov

 -неизвестно

 -Сообщества

Читатель сообществ (Всего в списке: 1) liru

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 25.01.2007
Записей: 36
Комментариев: 96
Написано: 519


jhead - радикальная оптимизация JPEG для web

Четверг, 10 Апреля 2008 г. 20:40 + в цитатник
Настроение сейчас - век живи - век учись

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

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



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


Любуемся результатом

Изображение зверя похудело до 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).
Метки:  

Процитировано 17 раз

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

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку