Сжатие Jpeg в Linux

С движением технического прогресса расширение изображений получаемых с помощью новейших гаджетов (смартфонов, цифровых камер)  продолжает расти. Например Nicon D800, недавно попавший на полки магазинов позволяет делать снимки качеством 36,3 мега пикселей и эта тенденция будет продолжаться. В то время как новые гаджеты увеличивают качество изображений, мы должны сжимать размер их перед отправкой на хранение или загрузкой в облако.

Есть простой способ сжимать изображения jpeg в Linux. Утилита называется Jpegoptim, она позволяет сжимать снимки без потерь качества. Также если пространство на диске ограничено есть возможность регулировать качество при сжатии.

Установка Jpegoptim в Linux

Для установки в Ubuntu, Debian и Linux Mint используйте:

sudo apt-get install jpegoptim

В Fedora выполните:

sudo yum install jpegoptim

В RHEL и CentOS сначала необходимо добавить репозиторий EPEL repo а затем выполнить:

sudo yum install jpegoptim

Сжатие JPEG без потери качества

Чтобы сжать картинку без потерь качества просто выполните:

jpegoptim -v photo.jpg

photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 821064 bytes (6.93%), optimized.

Оригинальное изображение будет заменено сжатым. Если jpegoptim не сможет оптимизировать изображение без потерь, оно не будет перезаписано.

jpegoptim -v photo.jpg

photo.jpg 2048x1536 24bit N ICC JFIF [OK] 821064 --> 821064 bytes (0.00%), skipped.

Если вы хотите сохранить оригинальное изображение используйте опцию d чтобы указать директорию для сохранения.

jpegoptim -d ./compressed photo.jpg

Все сжатые изображения будут помещены в указанную папку, например ./compressed.

Если вы хотите сберечь дату создания или модификации используйте опцию -p. Сжатое изображение будет помечено той же датой и временем что и исходное.

jpegoptim -d -p ./compressed photo.jpg

Если вы просто хотите проверить степень сжатия без потерь не перезаписывая изображение воспользуйтесь опцией -n. Команда просто выведет результат не изменяя картинку:

jpegoptim -n photo.jpg

Сжатие JPEG с потерями

Если вы действительно хотите  сэкономить место на диске, для больших изображений можно использовать сжатие с потерями.

Для этого используйте опцию -m qualiy. В место quality нужно указать максимальное качество от 0 до 100 (0 - самое высокое качество и минимальные потери, 100 - низкое качество, максимальные потери).

Например для сжатия изображения с сохранением 50% качества используйте:

jpegoptim -m50 photo.jpg

photo.jpg 2048x1536 24bit N ICC JFIF [OK] 882178 --> 301780 bytes (65.79%), optimized.

Вы получите изображение намного меньшего размера за счет снижения качества.

16260736234_6d6f1d2434_c

Сжатие нескольких изображений

Часто необходимо обработать несколько изображений в папке. Для этого можно использовать следующий скрипт:

!/bin/sh

#сжимает все *.jpg файлы в текущем каталоге
# и помещает их в подкаталог ./compressed
# с той же датой модификации что и в оригинальных файлах.
for i in *.jpg; do jpegoptim -d ./compressed -p "$i"; done

Или команду xargs:

find . -name "*.jpg" | xargs jpegoptim -d ./compressed -p

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

3 комментария

  1. Илья Май 11, 2016 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: