Pull to refresh

Comments 25

Так а что именно jpegtran оптимизирует, и как?
Помню была какая-то тулза, которая плотнее упаковывает JPEG гарантированно не ухудшая качество… Не помнишь, что за она?
jpegtran отрезает лишнюю мета информацию (-copy none) и подбирает оптимальные коэффициенты для косинусного преобразования (DCT), при которых размер сжатых данных получается минимальным.

есть ещё jpegoptim, но в режиме lossless он показывает худшие результаты, хотя незначительное уменьшение качества практически незаметно в большинстве случаев, зато размер существенно сокращается.
UFO just landed and posted this here
Экономится от двух (optipng и pngcrush) до четырёх процентов (optimize.sh). Не богато.
UFO just landed and posted this here
Всё так красиво, скриптами, и тут вдруг:
Примечание: если возникают ошибки, вроде "./optimize.sh: line 2: $'\r': command not found", то необходимо открыть скрипт в Sublime Text 2 и включить Unix Mode в View > Line endings > Unix.

какой-то чужеродный продукт неизвестного предназначения. Чем консольный dos2unix не угодил?
А еще, судя по скринам это msys shell под виндой, но не будем холиварить.
Вставлю своих пять копеек. Я пользуюусь: XnConvert Мега удобнейшая вещь если нужно провести предобработку пары сотен фото или сканов. Странно только почему их нету в репозиториях Debian-а.
что за шрифт на скриншотах?
Выглядит как Lucida Console.
Вместо проверки расширения файла, лучше определить его тип. Просто часто бывают файлы png с расширением jpg и т.д.
Есть в ImageMagick полезная утилита identify.
Использовать примерно так:

TYPE=`identify "$1" | grep -E -o 'JPEG|GIF|PNG'`           
case "$TYPE" in .....
Заголовок не очень точен. Оптимизация осуществляется всё же не bash-скриптом, а спец. тулзами, которые он дёргает! Если я сознательно не буду ставить эти тулзы (например, запущу «оптимизацию» на роутере с голым open-wrt и честным bash) — ничего не выйдет!
Ох-ох, во времена стримминга видео, 100-мегабитных интернетов, серий сериалов по 2ГБ, и ретина дисплеев, оптимизация картинок выглядит делом недостойным траты времени. Особенно при том, что 4% размера картинок не увеличат скорости загрузки страницы на 4%
Сегодня с утра, за завтраком, я прочитал этот топик в первый раз, заодно и во второй. Тогда я решил, что ничего не понял потому что надо больше и крепче спать. С тех пор прошло несколько часов, я успел доехать до работы, понаделать разных дел и выпить чаю. После этого я подумал, что надо бы вернуться сюда и попробовать понять еще раз. С сожалением констатирую, что я так и не разобрался, какую проблему решал автор.
Уменьшение изображения на 1 кБ при посещаемости в 1000 хостов дает экономию трафика 30 МБ в месяц. С одной картинки.
На своем опыте знаю, когда горе-дизайнеры выдают клиенту не оптимизированные png-изображения на сайт в 2-3 МБ. Затем они разлетаются хотлинкингом по форумам групповых закупок. Вот тут серверу плохеет. В такие моменты пиковой нагрузки оптимизация изображений стает достаточно заметной.
Спасибо автору, заморочился и сделал немного удобнее.
Ага, вот оно! Теперь ясно, что статья предназначена для занимающихся вебом. Сразу стало ясно, почему ее смысл для меня не очевиден. Благодарю.
WebP — всё уже придумано за нас…
Подходит далеко не всегда:
  1. Поддерживается не во всех браузерах, например, Firefox, IE
  2. YUV420 — цветовое разрешение вдвое ниже по обеим осям, а значит возможны проблемы с графиками и схемами

1. Firefox давно уже поддерживает WebP
2. Это так чудес не бывает, и за лучшую на сегодня степень сжатия приходится платить. Если же критерий — сохранение максимального подобия с оригиналом — используйте lossless режим WebP (думаю не будете разочарованы).
1. Firefox 22.0 (openSUSE 12.3 x86_64) WebP не понимает.
2. Lossless режим не отменяет YUV420, а значит информация всё равно теряется (не графическим форматом, но форматом цветового пространства).
Если наличие интернета не проблема — предпочитаю старый добрый smuhit, а чтобы не ходить на сайт, использую консольную ява-тулзу.
В общем и целом автору спасибо, хотя я подобным давно пользуюсь. :)
Единственно я бы вместо лишних переменных и довольно большой конструкции с find и затем for сделал бы короче:

find ${INPUT} -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v ${OUTPUT} | while read ${CURRENT_IMAGE}
do
 ...
Sign up to leave a comment.

Articles