У вас много изображений, и вы хотите оптимизировать и сжать изображения, не теряя при этом исходного качества, прежде чем загружать их в какое-либо облачное или локальное хранилище? Существует множество приложений с графическим интерфейсом, которые помогут вам оптимизировать изображения. Тем не менее, вот две простые утилиты командной строки для оптимизации изображений:
- jpegoptim - это утилита для оптимизации / сжатия файлов JPEG без потери качества.
- OptiPNG - небольшая программа, которая оптимизирует изображения PNG до меньшего размера без потери какой-либо информации.
jpegoptim - инструмент командной строки, который можно использовать для оптимизации и сжатия файлов JPEG, JPG и JFIF без потери его фактического качества. Этот инструмент поддерживает оптимизацию без потерь, которая основана на оптимизации таблиц Хаффмана.
Чтобы установить jpegoptim в своих системах Linux, выполните следующую команду на своем терминале.
# apt-get install jpegoptim
$ sudo apt-get install jpegoptim
В системах на основе RPM, таких как RHEL, CentOS, Fedora и т. Д., Вам необходимо [установить и включить репозиторий EPEL](https://www.tecmint.com/how-to- enable-epel-repository-for-rhel-centos-6-5 /) или, альтернативно, вы можете установить репозиторий epel непосредственно из командной строки, как показано ниже:
# yum install epel-release
# dnf install epel-release \[On **Fedora 22+** versions\]
Затем установите программу jpegoptim из репозитория, как показано ниже:
# yum install jpegoptim
# dnf install jpegoptim \[On **Fedora 22+** versions\]
Синтаксис jpegoptm:
$ jpegoptim filename.jpeg
$ jpegoptim \[options\] filename.jpeg
Теперь давайте сжимаем следующее изображение tecmint.jpeg
, но прежде чем оптимизировать изображение, сначала узнайте фактический размер изображения с помощью команды [du command](https://www.tecmint.com/check-linux- использование диска и файлов / каталогов /), как показано на рисунке.
$ du -sh tecmint.jpeg
6.2M tecmint.jpeg
Здесь фактический размер файла 6,2 МБ, теперь сожмите этот файл, выполнив:
$ jpegoptim tecmint.jpeg
Оптимизируйте изображение JPEG в Linux
Откройте сжатое изображение в любом приложении для просмотра изображений, вы не найдете каких-либо серьезных отличий. Исходное и сжатое изображения будут иметь одинаковое качество.
Приведенная выше команда оптимизирует изображения до максимально возможного размера. Тем не менее, вы можете сжать данное изображение до определенного размера, но это отключает оптимизацию без потерь.
Например, давайте сжимаем выше изображения с 5,6 МБ до 250k.
$ jpegoptim --size=250k tecmint.jpeg
Оптимизировать размер изображения Fix
Вы можете спросить, как сжать изображения во всем каталоге, это тоже не сложно. Перейдите в каталог, где у вас есть изображения.
tecmint@tecmint \~ $ cd img/
tecmint@tecmint \~/img $ ls -l
total 65184
-rwxr----- 1 tecmint tecmint 6680532 Jan 19 12:21 DSC\_0310.JPG
-rwxr----- 1 tecmint tecmint 6846248 Jan 19 12:21 DSC\_0311.JPG
-rwxr----- 1 tecmint tecmint 7174430 Jan 19 12:21 DSC\_0312.JPG
-rwxr----- 1 tecmint tecmint 6514309 Jan 19 12:21 DSC\_0313.JPG
-rwxr----- 1 tecmint tecmint 6755589 Jan 19 12:21 DSC\_0314.JPG
-rwxr----- 1 tecmint tecmint 6789763 Jan 19 12:21 DSC\_0315.JPG
-rwxr----- 1 tecmint tecmint 6958387 Jan 19 12:21 DSC\_0316.JPG
-rwxr----- 1 tecmint tecmint 6463855 Jan 19 12:21 DSC\_0317.JPG
-rwxr----- 1 tecmint tecmint 6614855 Jan 19 12:21 DSC\_0318.JPG
-rwxr----- 1 tecmint tecmint 5931738 Jan 19 12:21 DSC\_0319.JPG
А затем выполните следующую команду, чтобы сжать все изображения одновременно.
tecmint@tecmint \~/img $ jpegoptim \*.JPG
DSC\_0310.JPG 6000x4000 24bit N Exif \[OK\] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC\_0311.JPG 6000x4000 24bit N Exif \[OK\] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC\_0312.JPG 6000x4000 24bit N Exif \[OK\] 7174430 --> 6536500 bytes (8.89%), optimized.
DSC\_0313.JPG 6000x4000 24bit N Exif \[OK\] 6514309 --> 5909840 bytes (9.28%), optimized.
DSC\_0314.JPG 6000x4000 24bit N Exif \[OK\] 6755589 --> 6144165 bytes (9.05%), optimized.
DSC\_0315.JPG 6000x4000 24bit N Exif \[OK\] 6789763 --> 6090645 bytes (10.30%), optimized.
DSC\_0316.JPG 6000x4000 24bit N Exif \[OK\] 6958387 --> 6354320 bytes (8.68%), optimized.
DSC\_0317.JPG 6000x4000 24bit N Exif \[OK\] 6463855 --> 5909298 bytes (8.58%), optimized.
DSC\_0318.JPG 6000x4000 24bit N Exif \[OK\] 6614855 --> 6016006 bytes (9.05%), optimized.
DSC\_0319.JPG 6000x4000 24bit N Exif \[OK\] 5931738 --> 5337023 bytes (10.03%), optimized.
Вы также можете сжать несколько выбранных изображений одновременно:
$ jpegoptim DSC\_0310.JPG DSC\_0311.JPG DSC\_0312.JPG
DSC\_0310.JPG 6000x4000 24bit N Exif \[OK\] 6680532 --> 5987094 bytes (10.38%), optimized.
DSC\_0311.JPG 6000x4000 24bit N Exif \[OK\] 6846248 --> 6167842 bytes (9.91%), optimized.
DSC\_0312.JPG 6000x4000 24bit N Exif \[OK\] 7174430 --> 6536500 bytes (8.89%), optimized.
Более подробную информацию об инструменте jpegoptim можно найти на страницах руководства.
$ man jpegoptim
OptiPNG - инструмент командной строки, используемый для оптимизации и сжатия файлов PNG (переносимая сетевая графика) без потери исходного качества.
Установка и использование OptiPNG очень похожи на jpegoptim.
Чтобы установить OptiPNG в своих системах Linux, выполните следующую команду на своем терминале.
# apt-get install optipng
$ sudo apt-get install optipng
# yum install optipng
# dnf install optipng \[On Fedora **22+** versions\]
Примечание: Для установки программы optipng у вас должно быть включено хранилище epel в ваших системах на основе RHEL / CentOS.
Общий синтаксис optipng:
$ optipng filename.png
$ optipng \[options\] filename.png
Давайте сжимаем изображение tecmint.png
, но перед оптимизацией сначала проверим фактический размер изображения, как показано:
tecmint@tecmint \~/img $ ls -lh tecmint.png
-rw------- 1 tecmint tecmint **350K** Jan 19 12:54 tecmint.png
Здесь фактический размер файла выше изображения 350K, теперь сожмите этот файл, запустив:
tecmint@tecmint \~/img $ optipng tecmint.png
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: tecmint.png
1493x914 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 357525 bytes
Input file size = 358098 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 249211
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 249211
Output IDAT size = 249211 bytes (108314 bytes decrease)
Output file size = 249268 bytes (108830 bytes = 30.39% decrease)
Как видно из вышеприведенного вывода, размер файла tecmint.png был уменьшен до 30,39%. Теперь проверьте размер файла еще раз, используя:
tecmint@tecmint \~/img $ ls -lh tecmint.png
-rw-r--r-- 1 tecmint tecmint **244K** Jan 19 12:56 tecmint.png
Откройте сжатое изображение в любом приложении для просмотра изображений, вы не найдете каких-либо существенных различий между исходным и сжатым файлами. Исходное и сжатое изображения будут иметь одинаковое качество.
Чтобы сжать пакетные или несколько изображений PNG одновременно, просто перейдите в каталог, в котором находятся все изображения, и выполните следующую команду для сжатия.
tecmint@tecmint \~ $ cd img/
tecmint@tecmint \~/img $ optipng \*.png
OptiPNG 0.6.4: Advanced PNG optimizer.
Copyright (C) 2001-2010 Cosmin Truta.
** Processing: Debian-8.png
720x345 pixels, 3x8 bits/pixel, RGB
Input IDAT size = 95151 bytes
Input file size = 95429 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 81388
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 81388
Output IDAT size = 81388 bytes (13763 bytes decrease)
Output file size = 81642 bytes (13787 bytes = 14.45% decrease)
** Processing: Fedora-22.png
720x345 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 3x8 bits/pixel, RGB
Input IDAT size = 259678 bytes
Input file size = 260053 bytes
Trying:
zc = 9 zm = 8 zs = 0 f = 5 IDAT size = 222479
zc = 9 zm = 8 zs = 1 f = 5 IDAT size = 220311
zc = 1 zm = 8 zs = 2 f = 5 IDAT size = 216744
Selecting parameters:
zc = 1 zm = 8 zs = 2 f = 5 IDAT size = 216744
Output IDAT size = 216744 bytes (42934 bytes decrease)
Output file size = 217035 bytes (43018 bytes = 16.54% decrease)
....
Для получения более подробной информации о optipng проверьте справочные страницы.
$ man optipng
CentOS Ubuntu RedHat jpegoptim OptiPNG epel RHEL Fedora Debian