
Google firmasının desteklediği resim formatı webp ile hızlı açılan resimler oluşturmak çok kolay. Bu yazımızda linux sunucularda (ssh ile) bulunan resimlerimizi bir kaç kolay adımda webp formatına dönüştürmeyi anlatacağım. Bunun yanında yer avantajıda sağlayacaktır ancak hala bu resim formatının bazı dezavantajları bulunuyor. Örneğin bazı tarayıcılar hala webp resim formatını desteklemiyor. Yavaş da olsa bütün tarayıcılar bu resim formatına destek vermeye başladı ancak bunun bütün tarayıcı ve tarayıcı sürümlerinde yer alması zaman alacaktır. Bu dezavantajı ortadan kaldırmak için webp formatına çevirdiğimiz resimleri olduğu gibi bırakabiliriz ve webp formatını destekleyen tarayıcılarda webp sürümlerini, desteklemeyen tarayıcılarda da normal resimleri gösterebiliriz. Bu konuyu farklı bir yazıda ele alabiliriz, şuanki konumuz linux sunucularda sitemizde yada sunucumuzda yer alan resimleri webp formatına çevirmek.
Daha önce bu konuya “WebP resim formatı ile WordPress de %40-%50 daha hızlı olun” yazısında sonlara doğru değinmiştim ancak yeni değiştirdiğim sunucuda bu işlem için gerekli olan uygulamayı kuramadım malesef ve bu gibi durumlarda daha kolay olan ayrı bir yöntemi daha ekleyeceğim, böylece ilk yöntemle kurulamayan program olursa 2. yöntemde farklı bir yolla işlemlerimizi yapabileceğiz.
Kullandığım linux dağıtımı Centos 8 ve yukarda paylaştığım linkte ki yöntemle gerekli olan kurulumu yapamamıştım ancak ne olur ne olmaz buraya ilk yöntem olarak ekleyeceğim ve bu işe yaramazsa diğer yönteme yönlendireceğim sizi.
1 – Linux sunucularda webp formatı için gerekli eklentileri kurma
Bize iki uygulama gerekli bunlar parallel ve libwebp-tools. Aşağıdaki komutu ssh panelinizden çalıştırarak kurulmasını sağlayın, eğer libwebp-tools kurulmazsa bu yöntemi atlayıp ikinci adıma geçin.
yum -y install parallel libwebp-tools
Bu kurulum başarılı olursa aşağıdaki komut ile resimlerimizi webp formatına çevirebiliriz ancak öncelikle formatlarını değiştirmek istediğiniz dizine girin. Alt klasörleride çevireceğini belirtelim bu yüzden girdiğiniz yol içinde bulunan her resmi (alt klasörlerde dahil) belirlediğiniz formata çevirecektir.
Örnek wordpress için resimlerin yer aldığı uploads klasörüne girmek için aşağıdaki gibi bir komu çalıştırmanız gerekiyor:
cd /home/kuazacom/public_html/wp-content/uploads
Resim klasörümüze girdikten sonra aşağıdaki komutları sırasıyla çalıştırdığımızda belirttiğimiz resim formatlarını webp formatıne gönüştürecektir: Sırasıyla komutlar jpg, jpeg, png resim formatlarını çevirecektir.
find . -name "*.jpg" | parallel -eta cwebp -q 85 {} -o {.}.jpg.webp
find . -name "*.jpeg" | parallel -eta cwebp -q 85 {} -o {.}.jpeg.webp
find . -name "*.png" | parallel -eta cwebp -q 85 {} -o {.}.png.webp
Eğer çalıştırdığımız ilk kod cwebp hatası verirse sonraki başlıktaki yöntemi uygulayın.
Kod yapısında göreceğiniz 85 kısmı dönüştürme sırasında resme uygulanacak optimizasyonun kalitesini belirtmektedir. 100 yaparsanız kayıpsız resimlerinizi webp formatına dönüştürecektir, bu sayı ne kadar düşerse resim kalitesi de o yönde düşecektir. Makul sayı 85-90 olacaktır. Bu şekilde fazla bir kayıp olmadan resimleri webp formatına çevirecek, boyut olarakda düşürecektir.
2 – Yöntem: libwebp-tools kaynak dosyaları ile dönüştürme yapma
Bu yöntemi üstdeki yöntem çalışmazsa diye ekliyorum, bende işe yaradığı için yeni konu açmak istedim çünkü herzaman lazım olacak bu anlatım. Öncelikle parallel uygulamasını kuralım.
yum -y install parallel
Kurulumdan sonra sunucumuza libwebp-tools kaynak kodlarını indirelim, libwebp-tools uygulamasının güncel versiyonlarını burdan görebilirsiniz. Bu isme göre bakıp en yüksek sürüm numarasına göre indireceğimiz dosyayı bulup url sini kopyalayalım: libwebp-1.1.0-linux-x86-64.tar.gz

Sonrasında aşağıdaki gibi indirme urlsini ssh panelimizden sunucumuza indirelim.
wget -c https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.1.0-linux-x86-64.tar.gz
İndirdiğimiz dosyayı açalım.
tar -xvf libwebp-1.1.0-linux-x86-64.tar.gz
cd libwebp-1.1.0-linux-x86-64/bin/
ls
Yukarıdaki işlemin ardından bize yardımcı uygulamaların isimlerini çıktı olarak ekranda verecek, bu yardımcı programlar ve yetenekleri:
- anim_diff – animasyon görüntüleri arasındaki farkı gösterme aracı.
- anim_dump – animasyon görüntüleri arasındaki farkı boşaltmak için bir araç.
- cwebp – webp kodlayıcı aracı.
- dwebp – webp kod çözücü aracı.
- gif2webp – GIF görüntülerini webp’ye dönüştürmek için bir araç.
- img2webp – bir dizi görüntüyü animasyonlu bir webp dosyasına dönüştürmek için araçlar.
- vwebp – webp dosya görüntüleyicisi.
- webpinfo – bir webp resim dosyası hakkındaki bilgileri görüntülemek için kullanılır.
- webpmux – webp çoklama aracı.
Biz libwebp uygulamasının cwebp yardımcı özelliğini kullanarak resimleri webp formatına dönüştüreceğiz. Bunun için ilk yöntemde verdiğim dönüştürme kodlarında biraz oynama yapacağız.
find . -name "*.jpg" | parallel -eta /root/libwebp-1.1.0-linux-x86-64/bin/cwebp -q 85 {} -o {.}.jpg.webp
find . -name "*.jpeg" | parallel -eta /root/libwebp-1.1.0-linux-x86-64/bin/cwebp -q 85 {} -o {.}.jpeg.webp
find . -name "*.png" | parallel -eta /root/libwebp-1.1.0-linux-x86-64/bin/cwebp -q 85 {} -o {.}.png.webp
Bu şekilde derleme programına direk yol göstererek resimlerin dönüştürülmesini sağlayacağız.
Tek resmi webp formatına dönüştürme
Eğer tek tek resimleri webp formatına dönüştürmek isterseniz aşağıdaki komut işinizi görecektir.
/root/libwebp-1.1.0-linux-x86-64/bin/cwebp -q 85 kuaza_guzel_resim.png -o kuaza_guzel_resim.png.webp
Yukarıdaki komutda göreceğiniz -q: dönüştürme kalitesini, -o: da dönüştürme sonrasında resmi ismini belirtmek için kullanılacaktır. Cwebp uygulamasında kullanabileceğiniz daha fazla parametreye buradaki resmi sayfadan ulaşabilirsiniz.
Parallel için dipnot

Parallel uygulaması 10 kullanımdan sonra uyarı verecektir, bu uyarıyı geçmek için çıkan uyarı ekranına önce parallel –citation yazıp onaylayın, sonrasında da will cite yazıp gönderin. Böylece daha fazla kullanım hakkınız olacak ve kullanmaya devam edebileceksiniz.
Yardımcı kaynaklar
- How to Convert Images to WebP Format in Linux
- Önizleme resmi: Image by cherry19921025 from Pixabay