Комментарии 25
Так а что именно jpegtran оптимизирует, и как?
Помню была какая-то тулза, которая плотнее упаковывает JPEG гарантированно не ухудшая качество… Не помнишь, что за она?
Помню была какая-то тулза, которая плотнее упаковывает JPEG гарантированно не ухудшая качество… Не помнишь, что за она?
jpegtran отрезает лишнюю мета информацию (-copy none) и подбирает оптимальные коэффициенты для косинусного преобразования (DCT), при которых размер сжатых данных получается минимальным.
есть ещё jpegoptim, но в режиме lossless он показывает худшие результаты, хотя незначительное уменьшение качества практически незаметно в большинстве случаев, зато размер существенно сокращается.
есть ещё jpegoptim, но в режиме lossless он показывает худшие результаты, хотя незначительное уменьшение качества практически незаметно в большинстве случаев, зато размер существенно сокращается.
Экономится от двух (optipng и pngcrush) до четырёх процентов (optimize.sh). Не богато.
Всё так красиво, скриптами, и тут вдруг:
какой-то чужеродный продукт неизвестного предназначения. Чем консольный dos2unix не угодил?
Примечание: если возникают ошибки, вроде "./optimize.sh: line 2: $'\r': command not found", то необходимо открыть скрипт в Sublime Text 2 и включить Unix Mode в View > Line endings > Unix.
какой-то чужеродный продукт неизвестного предназначения. Чем консольный dos2unix не угодил?
что за шрифт на скриншотах?
Для мака есть отличная ImageOptim imageoptim.com/
Вместо проверки расширения файла, лучше определить его тип. Просто часто бывают файлы png с расширением jpg и т.д.
Есть в ImageMagick полезная утилита identify.
Использовать примерно так:
Есть в 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 МБ. Затем они разлетаются хотлинкингом по форумам групповых закупок. Вот тут серверу плохеет. В такие моменты пиковой нагрузки оптимизация изображений стает достаточно заметной.
Спасибо автору, заморочился и сделал немного удобнее.
На своем опыте знаю, когда горе-дизайнеры выдают клиенту не оптимизированные png-изображения на сайт в 2-3 МБ. Затем они разлетаются хотлинкингом по форумам групповых закупок. Вот тут серверу плохеет. В такие моменты пиковой нагрузки оптимизация изображений стает достаточно заметной.
Спасибо автору, заморочился и сделал немного удобнее.
WebP — всё уже придумано за нас…
Подходит далеко не всегда:
- Поддерживается не во всех браузерах, например, Firefox, IE
- YUV420 — цветовое разрешение вдвое ниже по обеим осям, а значит возможны проблемы с графиками и схемами
1. Firefox давно уже поддерживает WebP
2. Это так чудес не бывает, и за лучшую на сегодня степень сжатия приходится платить. Если же критерий — сохранение максимального подобия с оригиналом — используйте lossless режим WebP (думаю не будете разочарованы).
2. Это так чудес не бывает, и за лучшую на сегодня степень сжатия приходится платить. Если же критерий — сохранение максимального подобия с оригиналом — используйте lossless режим WebP (думаю не будете разочарованы).
Вам давно пора изучить gruntjs.com/.
В общем и целом автору спасибо, хотя я подобным давно пользуюсь. :)
Единственно я бы вместо лишних переменных и довольно большой конструкции с find и затем for сделал бы короче:
Единственно я бы вместо лишних переменных и довольно большой конструкции с find и затем for сделал бы короче:
find ${INPUT} -regextype posix-extended -regex '.*\.(jpg|jpeg|png)' | grep -v ${OUTPUT} | while read ${CURRENT_IMAGE}
do
...
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Оптимизация изображений bash-скриптом