Linux Komut Satırında JPEG veya PNG Görüntüleri Optimize Etme ve Sıkıştırma


Çok fazla görseliniz var ve görselleri herhangi bir bulut veya yerel depolamaya yüklemeden önce orijinal kalitesini kaybetmeden optimize edip sıkıştırmak mı istiyorsunuz? Görüntüleri optimize etmenize yardımcı olacak çok sayıda GUI uygulaması mevcuttur. Ancak burada görüntüleri optimize etmek için iki basit komut satırı yardımcı programı bulunmaktadır ve bunlar:

  1. jpegoptim – JPEG dosyalarını kalite kaybı olmadan optimize etmek/sıkıştırmak için kullanılan bir yardımcı programdır.
  2. OptiPNG – PNG görüntülerini hiçbir bilgi kaybı olmadan daha küçük boyuta optimize eden küçük bir programdır.

Bu iki aracı kullanarak aynı anda tek veya birden fazla görüntüyü optimize edebilirsiniz.

JPEG Görüntülerini Komut Satırından Sıkıştırın veya Optimize Edin

jpegoptim, JPEG, JPG ve JFIF dosyalarını gerçek kalitesini kaybetmeden optimize etmek ve sıkıştırmak için kullanılabilecek bir komut satırı aracıdır. Bu araç, Huffman tablolarının optimize edilmesine dayanan kayıpsız optimizasyonu destekler.

Linux'ta jpegoptim'i yükleyin

Linux sistemlerinize jpegoptim'i yüklemek için terminalinizden aşağıdaki komutu çalıştırın.

Debian ve Türevleri Üzerine
apt-get install jpegoptim
or
sudo apt-get install jpegoptim
RedHat tabanlı Sistemlerde

RHEL, CentOS, Fedora vb. gibi RPM tabanlı sistemlerde EPEL deposunu kurup etkinleştirmeniz gerekir veya alternatif olarak epel'i yükleyebilirsiniz. gösterildiği gibi doğrudan komut satırından depolayın:

yum install epel-release
dnf install epel-release    [On Fedora 22+ versions]

Daha sonra gösterildiği gibi depodan jpegoptim programını yükleyin:

yum install jpegoptim
dnf install jpegoptim    [On Fedora 22+ versions]

Jpegoptim Resim Optimize Edici Nasıl Kullanılır

jpegoptm'nin sözdizimi şöyledir:

jpegoptim filename.jpeg
jpegoptim [options] filename.jpeg

Şimdi aşağıdaki tecmint.jpeg görselini sıkıştıralım ancak görseli optimize etmeden önce gösterildiği gibi du komutunu kullanarak görselin gerçek boyutunu bulalım.

du -sh tecmint.jpeg 

6.2M	tecmint.jpeg

Burada gerçek dosya boyutu 6,2 MB'tır, şimdi bu dosyayı çalıştırarak sıkıştırın:

jpegoptim tecmint.jpeg 

Sıkıştırılmış görüntüyü herhangi bir resim görüntüleme uygulamasında açın, büyük bir fark bulamazsınız. Kaynak ve sıkıştırılmış görüntüler aynı kalitede olacaktır.

Yukarıdaki komut, görüntüleri mümkün olan maksimum boyuta optimize eder. Ancak verilen görüntüyü belirli bir boyuta sıkıştırabilirsiniz ancak bu, kayıpsız optimizasyonu devre dışı bırakır.

Örneğin, görselin üst kısmını 5,6 MB'tan yaklaşık 250 bin'e kadar sıkıştıralım.

jpegoptim --size=250k tecmint.jpeg

Toplu JPEG Görüntü Sıkıştırma ve Optimizasyon

Dizinin tamamındaki görsellerin nasıl sıkıştırılacağını sorabilirsiniz, bu da zor değil. Resimlerin bulunduğu dizine gidin.

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

Daha sonra tüm görüntüleri bir kerede sıkıştırmak için aşağıdaki komutu çalıştırın.

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.

Ayrıca seçilen birden fazla görüntüyü aynı anda sıkıştırabilirsiniz:

$ 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 aracı hakkında daha fazla ayrıntı için man sayfalarına göz atın.

man jpegoptim 

Komut Satırından PNG Görüntülerini Sıkıştırın veya Optimize Edin

OptiPNG, PNG (taşınabilir ağ grafikleri) dosyalarını orijinal kalitesini kaybetmeden optimize etmek ve sıkıştırmak için kullanılan bir komut satırı aracıdır.

OptiPNG'nin kurulumu ve kullanımı jpegoptim'e çok benzer.

OptiPNG'yi Linux'a yükleyin

Linux sistemlerinize OptiPNG'yi yüklemek için terminalinizden aşağıdaki komutu çalıştırın.

Debian ve Türevleri Üzerine
apt-get install optipng
or
sudo apt-get install optipng
RedHat tabanlı Sistemlerde
yum install optipng
dnf install optipng    [On Fedora 22+ versions]

Not: optipng'i yüklemek için RHEL/CentOS tabanlı sistemlerinizde epel deposunu etkinleştirmiş olmanız gerekir. programı.

OptiPNG Resim Optimize Edici Nasıl Kullanılır

optipng'in genel sözdizimi şöyledir:

optipng filename.png
optipng [options] filename.png

tecmint.png resmini sıkıştıralım, ancak optimizasyondan önce, gösterildiği gibi resmin gerçek boyutunu kontrol edelim:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw------- 1 tecmint tecmint 350K Jan 19 12:54 tecmint.png

Yukarıdaki görselin gerçek dosya boyutu 350K'dır, şimdi bu dosyayı çalıştırarak sıkıştırın:

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)

Yukarıdaki çıktıda gördüğünüz gibi tecmint.png dosyasının boyutu %30,39'a kadar küçültüldü. Şimdi aşağıdakileri kullanarak dosya boyutunu tekrar doğrulayın:

tecmint@tecmint ~/img $ ls -lh tecmint.png 
-rw-r--r-- 1 tecmint tecmint 244K Jan 19 12:56 tecmint.png

Sıkıştırılmış görüntüyü herhangi bir resim görüntüleme uygulamasında açın; orijinal ve sıkıştırılmış dosyalar arasında büyük bir fark bulamazsınız. Kaynak ve sıkıştırılmış görüntüler aynı kalitede olacaktır.

Toplu PNG Görüntü Sıkıştırma ve Optimizasyon

Toplu veya birden fazla PNG görüntüsünü aynı anda sıkıştırmak için tüm görüntülerin bulunduğu dizine gidin ve sıkıştırmak için aşağıdaki komutu çalıştırın.

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 hakkında daha fazla ayrıntı için kılavuz sayfalarını kontrol edin.

man optipng

Çözüm

Bir web yöneticisiyseniz ve web siteniz veya blogunuz üzerinden optimize edilmiş görseller sunmak istiyorsanız bu araçlar çok kullanışlı olabilir. Bu araçlar yalnızca disk alanından tasarruf etmekle kalmaz, aynı zamanda görüntüleri yüklerken bant genişliğini de azaltır.

Aynı şeyi başarmanın başka daha iyi bir yolunu biliyorsanız, yorum yoluyla bize bildirin ve bu makaleyi sosyal ağlarınızda paylaşmayı ve bizi desteklemeyi unutmayın.