Mozjpeg ile resimleri optimize etmek

Web işi hız işi. Yakın zamanda büyük ölçekli bir sitenin server bakım işini aldık. Görev tanımımda olmayan bazı konularda da yardımcı oluyorum.
Sağolsunlar siteye zamanında optimize edilmemiş milyonlarca JPEG resim atmışlar. Milyon lafı sözün gelişi değil sitede gerçekten milyonlarca resim var. Aylık 40 terabayt trafik dersem sitenin büyüklüğü anlaşılır sanırım!

Komut satırından bu işi nasıl çözeriz araştırmaya başladım.
Ortalıkta resim optimizasyonu için pek çok konsol tabanlı uygulama var.
Benim gördüğüm kadarı ile en iyi sıkıştıranı mozjpeg.
Alttaki linkte bir karşılaştırma tablosu var.
https://blarg.co.uk/blog/comparison-of-jpeg-lossless-compression-tools
Yazının eski olması önemli değil o günden bu yana dişe dokunur tek oyuncu çıkmış guetzli.
Guetzli tarif edilemeyecek derecede yavaş olduğu için onu listeden çıkarttım. Hem 2 yıldır en ufak bir güncelleme olmadığı ısrarla single core çalıştığı için hem de ızdırabına değmez boyut avantajı sebebi ile bkz; https://ariya.io/2017/03/squeezing-jpeg-images-with-guetzli

Mozjpeg iyi hoş ama kendisi Debian’ın depolarında hazır gelmiyor. Bu yüzden kurulum adımlarını not alayım ki gelecek sefere kolay olsun.

sudo apt-get update sudo apt-get install cmake autoconf automake libtool nasm make pkg-config git
git clone https://github.com/mozilla/mozjpeg.git
cd mozjpeg
mkdir build && cd build
sudo cmake -G"Unix Makefiles" ../
sudo make install
sudo ln -s /opt/mozjpeg/bin/jpegtran /usr/bin/mozjpeg

make install aşaması biraz zaman alıyor.
mozjpeg’i kurduktan sonra bir aşama daha var

cd /tmp
wget https://github.com/danielgtaylor/jpeg-archive/releases/download/2.1.1/jpeg-archive-2.1.1-linux.tar.bz2 -O jpeg-archive.tar.bz2
tar -xf jpeg-archive.tar.bz2
sudo cp jpeg-recompress /usr/bin/jpeg-recompress
sudo chmod 755 /usr/bin/jpeg-recompress

benim kullanıp memnun kaldığım ayarlar.

jpeg-recompress --quality medium --method ssim --min 60 orjinal.jpg cikti.jpg

jpeg-recompress --quality medium --method ssim --min 60 yazmak pek keyifli olmadığı için buna bir alias tanımlamanın zararı olmaz, –min 60 parametresi tahmin edileceği gibi minimum bu kaliteye in altına inme diye bir garanti unsuru.
--accurate paramatresi ile daha yavaş ama daha sağlıklı sonuç alınır
Alttaki kod ile şu klasörün altında tüm JPG’leri bul ve sıkıştır demek mümkün. (dikkat emin olmadan uygulamayın geri dönüşü yok)

find /var/www/sitenin-koku/wp-content/uploads -type f -iname '*.jpg' -exec jpeg-recompress --quality medium --min 60 --accurate --method ssim \{} \{} \;

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir