ImageMagick – Dosya Boyutlarını Azaltma

Imagemagick Dosya Boyutlarini Azaltma



Güzel ve büyük bir resim neredeyse harikadır; genellikle muazzam kalite eşlik eder. Ancak, boyut olarak çok büyük resimlere sahip olamayacağınız birçok durum vardır. Bazen, istediğiniz tek şey makul boyutta bir resim veya hatta belirli bir boyuttan daha küçük bir resimdir. Bu gibi durumlarda, programcının tek istediği kalite ve boyut arasında bir orta yol bulmaktır. Teorik olarak, kaliteden tamamen vazgeçerseniz, dosya boyutu bir sorun olmamalıdır, ancak asıl mesele, kalite ve dosya boyutu arasında bir uzlaşma bulmaktır. Bu eğitimde, ImageMagick kullanarak (kaliteden çok fazla ödün vermeden) resimlerin dosya boyutunu küçültmenin yollarını tartışacağız.

ImageMagick'i Yükleme

Bunun için ImageMagick'e ihtiyacımız olacak, o yüzden önce onu yükleyelim:







sudo apt-get kurulumu resim büyüsü



Kalite Anahtarı

Bir fotoğrafın/resmin/videonun boyutunu küçültmenin ilk ve en kolay yolu, fotoğrafın kalitesini düşürmektir. Kalite anahtarı, JPEG/MIFF/PNG sıkıştırma düzeyini temsil eder. JPEG ve MPEG için, 1 kalitesi en yüksek sıkıştırma düzeyini ve en düşük görüntü kalitesini temsil ederken, 100 en düşük sıkıştırma düzeyini ve en iyi kaliteyi temsil eder.



Öyleyse bir örneğe bakalım; çektiğim ağaç resmi 4624×3468 çözünürlükte ve 5.70226MiB. Bu orijinal resim, bir JPEG, spesifik olmak gerekirse.






Şimdi, nokta şu ki, görüntünün boyutunu küçültmek istiyoruz. Öyleyse, kalite anahtarı ayarlarını biraz farklı bir şeye ayarlamaya çalışalım ve ne olacağını görelim.

ağaç_4624x3468.jpg dönüştürmek -kalite 75 ağaç_4624x3468_quality75.jpg
ağaç_4624x3468.jpg dönüştürmek -kalite 25 ağaç_4624x3468_quality25.jpg



Kaliteyi bir resim için 75'e, diğeri için 25'e düşürdüm. Orijinal görüntü 5.70226MiB idi, ancak 75 kalitesindeki görüntü 2.74664MiB olurken, 25 kalitesindeki görüntü 1358250 (1.295MiB) oldu. Burada, şahsen %75 kaliteyi tercih ederim.



Şimdi, fotoğrafın gerçek kalitesini de önemsediğimiz için, size fotoğrafları göstereyim:


ağaç_4624x3468_quality75.jpg


ağaç_4624x3468_quality25.jpg

Gördüğünüz gibi kalite çok fazla etkilenmedi ancak dosya boyutu daha küçük.

Şimdi, aynısını PNG ile yapmayı denedim ve elde ettiğim şey bu:


Böylece 23501600B'den (22.413MiB) 22.2854MiB'ye çıktı. Bir JPEG için 5.70226MiB'den 1.295MiB'ye çıktı. PNG gibi kayıpsız formatlar için kalite geçişi çok daha zordur.

Resimleri Yeniden Boyutlandırma

Resimleri yeniden boyutlandırmak başka bir yoldur. Örneğin:

ağaç_4624x3468.jpg dönüştürmek -yeniden boyutlandırma elli % x50 % ağaç_4624x3468_resize50 % .jpg



Açıkça görebileceğiniz gibi, 4624×3468 olan resim 5.70226MiB iken 2312×1734 olan resim sadece 1.56287MiB.

Tanımlama Anahtarı

Tanımlama anahtarını bir anahtar ve verilen değeri takip eder.

-anahtar tanımla{=değer}…

Olası anahtar değerlerin listesi şu adreste bulunabilir: .

PNG için png:compression-level=value kullanabilirsiniz. Değer 0 ile 9 arasında herhangi bir değer olabilir. 0 değeri size en az sıkıştırmayı sağlar, ancak hızlıdır ve 9 değeri size en iyi sıkıştırmayı sağlar ancak en yavaşıdır. Aradaki her şey de gider.

Örneğin:

tree_4624x3468.png'yi dönüştür -tanımlamak png:sıkıştırma seviyesi= 9 ağaç_4624x3468_compression9.png



Çoğu durumda, bir programcının istediği, bir fotoğraf için maksimum bir boyut belirlemektir. Bu nedenle, bir fotoğraf için maksimum bir boyut ayarlamak istediğinizi varsayalım. Bunu yapmak için tanımlama anahtarını kullanabilirsiniz.

-jpeg tanımlayın:uzantı={boyut}

ağaç_4624x3468.jpg dosyasını dönüştür -tanımlamak jpeg: kapsam =1MB ağaç_4624x3468_extent1MB.jpg



Yukarıdaki resimde gördüğünüz gibi 4624×3468 çözünürlüğe ve 0.897MiB boyuta ayarlamış. Yani, istediğiniz gibi, ImageMagick maksimum 1MB boyutundan daha küçük bir fotoğraf oluşturdu.

Şerit Anahtarı

Kameralarla çektiğimiz resimler Metadata ile birlikte gelir. Meta Verileri kaldırmak da biraz alan açabilir. ImageMagick'te bunu şerit anahtarını kullanarak yapıyoruz.

ağaç_4624x3468.jpg dönüştürmek şerit ağaç_şeridi.jpg



Burada gördüğünüz gibi orijinal fotoğraf 4624×3468 ve 5.7MiB. Ancak Meta Verileri çıkarılmış olan görüntü 4.65MiB'dir.

Renk Alanı Anahtarı

Renk alanını değiştirmeyi de deneyebilirsiniz. Bu ilk örnekte, onu griye çevireceğim.

ağaç_4624x3468.jpg dönüştürmek -renk alanı gri ağaç_gray.jpg -kalite 75



Gördüğünüz gibi, görüntü boyutundaki küçülme çok büyük değil, ancak 5.70226MiB'den 4.44997MiB'ye bir azalma var.

Alternatif olarak, aşağıdakileri de denedim:

tree_4624x3468.png'yi dönüştür -renk alanı gri ağaç_graypng.png



PNG söz konusu olduğunda, 4624×3468 olan orijinal fotoğrafım 22,42 MiB, ancak griye çevirdiğimde 8,88 MiB oluyor.

Renk Anahtarı

Ayrıca kullanılan renk sayısını değiştirmeyi de seçebilirsiniz. Bu özel durumda, bir PNG'de yalnızca 16 renk kullanacağım.

tree_4624x3468.png'yi dönüştür -renkler 16 ağaç_4624x3468_16colors.png



Orijinal PNG 4624×3468 ve 22.42MiB idi. Ancak renkleri sadece 16 olarak değiştirdiğimde görüntünün boyutu 4.27MiB oldu. Ve fotoğraf şöyle görünüyor:


ağaç_4624x3468_16colors.png

Birden Çok Anahtar Kullanma

Artık bir fotoğrafta tek bir düğme kullanmanıza gerek yok! Bir resim üzerinde istediğiniz kadar anahtarı birleştirebilirsiniz.

Yani, örnek 1'de, bir ağacın PNG fotoğrafını çekeceğim. Bu orijinal fotoğraf 4624×3468 ve 22.42MiB boyutunda ve birden fazla anahtar kullanıp beni nereye götüreceğini göreceğim.

tree_4624x3468.png'yi dönüştür şerit -yeniden boyutlandırma 75 % x75 % -tanımlamak png:sıkıştırma seviyesi= 9 -renk alanı gri ağaç_4624x3468_reducedsize.png



Böylece orijinal boyutu 22.42MiB olan bu PNG, 5.3MiB boyutunda bir resme dönüştü. Ortaya çıkan resim, orijinal boyutunun yaklaşık %23'üdür.

Şimdi bir JPG'ye bakalım.

ağaç_4624x3468.jpg dönüştürmek -kalite 75 -yeniden boyutlandırma 75 % x75 % şerit -renkler 16 ağaç_4624x3468_reducedsize.jpg



Böylece, burada, JPG için, renkli bir görüntü için 5,7 MiB'lik orijinal boyuttan yaklaşık 2,2 MiB'ye çıktık.

Ama renkli olmasaydı:

ağaç_4624x3468.jpg dönüştürmek -kalite 75 -yeniden boyutlandırma 75 % x75 % şerit -renk alanı gri ağaç_4624x3468_reducedsize.jpg



Burada, gri bir görüntü için orijinal 5.7MiB boyutundan 1.6MiB'ye gittik.

İsteseydiniz, boyut için de bir maksimum sınır koyabilirdiniz. Mesele şu ki, gerçekten karar verirseniz boyutu küçültebilirsiniz.

Çözüm

Belirli bir amaç için kod yazarken, resimleri de kullanma eğilimindeyiz ve bazen, boyutları çok büyük resimlere sahip olamayız. Bu gibi durumlarda, programcının ana odak noktası, resmin boyutu ile resmin kalitesi arasında bir uzlaşma bulmaktır. Kalitesi çok düşük resimler kullanmak istemiyoruz ama büyük boyutlu resimlere de paramız yetmiyor. Bu nedenle, resmin boyutunu küçültmenin yollarına ihtiyacımız var. ImageMagick, kalite, yeniden boyutlandırma, tanımlama gibi çeşitli anahtarlar şeklinde resminizin boyutunu azaltmak için çeşitli yollar sunar. Resmin boyutunu ayarlamak için bunlardan birini veya daha fazlasını kullanabilirsiniz.