Imagemagick ve Görüntü Dosyaları
GNU/Linux komut satırında birden fazla görüntü dosyası üzerinde işlem yapmak için en uygun paketlerden birisi ImageMagick paketidir. İçerisinde convert
, mogrify
, identify
, composite
, montage
gibi temel işlemleriniz için pek çok araç barındırır.
Not: ImageMagick'in modern sürümleri (versiyon 7 ve sonrası), genellikle tüm işlevleri tek bir magick
komutu altında birleştirmiştir. Eski komutlar (convert
, identify
vb.) çoğu zaman geriye dönük uyumluluk için magick
komutuna bir sembolik link olarak bulunur. Örneklerde eski komutlar kullanılsa da, bunların yerine magick convert ...
, magick identify ...
gibi kullanımların da mümkün olduğunu unutmayın. Örneğin:convert logo.png logo.jpg
yerine magick logo.png logo.jpgidentify logo.png
yerine magick identify logo.png
Tip Dönüşümü
Örneğin dosya uzantılarından dosya tiplerini anlayacağı için, doğrudan png->jpg dönüşümü gibi işlemler yapabilirsiniz. Ayrıca kalite belirterek dosyanın kayıplı sıkıştırma miktarını belirleyebilirsiniz.
convert logo.png logo.jpg
convert logo.png -quality 70 logo.jpg
Boyut Dönüşümü
Imagemagick ile dosya boyutlarını değiştirmek kolaydır.
convert logo.jpg -resize 300x120 logo.jpg
Yukarıdaki komut, görüntü oranını (aspect ratio) korur. Yani görüntüyü 300x120'lik bir dikdörtgen içerisine sığdırmaya çalışır. Eğer korumasını istemiyorsanız ve oran bozulsa bile tam olarak 300x120'lik çıktı elde etmek istiyorsanız bunu ünlem (!) koyarak belirtebilirsiniz.
convert logo.jpg -resize 300x120! logo.jpg
Tabii oran korunarak boyutlandırma için sadece genişlik (width) veya yükseklik (height) belirtebilirdik.
convert logo.jpg -resize 300 logo.jpg
convert logo.jpg -resize x120 logo.jpg
Ayrıca yüzde belirterek küçültme işlemleri de yapılabilir.
convert logo.jpg -resize 50% logo.jpg
Sadece Küçült
Imagemagick ile sadece belirli boyuttan büyük olanları küçültmek için kullanılabilecek bir işaretçi var, büyüktür > işareti. Alışılmışın tersine bir gösterim ancak bunu şu şekilde okumak gerekir: "Sadece bu boyuttan büyük olan dosyalarda çalış".
convert logo.jpg -resize 128x128\> logo_thmb.jpg
Sadece Büyüt
Yukarıdaki işlemin tam tersidir. Eğer dosya belirtilen limitlerden küçükse çalışır.
convert logo.jpg -resize 128x128\< logo_large.jpg
Döndürme İşlemleri
Imagemagick ile görüntüyü döndürmek tahmin edileceği gibi rotate ile yapılır.
convert logo.jpg -rotate 90 logo.jpg
Kaynak: http://xkcd.com/1604/
Aynalama İşlemleri
Öte yandan aynalama işlemleri için flip ve flop seçenekleri kullanılır. flip görüntüyü başaşağı çevirir (x-ekseninde aynalama), flop ise soldan sağa doğru (y-ekseninde) çevirir.
eaydin@dixon ~/calisma/im $ convert 1604.png -flip flipped.png
eaydin@dixon ~/calisma/im $ convert 1604.png -flop flopped.png
eaydin@dixon ~/calisma/im $ convert 1604.png -flip -flop flipflop.png
Filtreler
Programın bir çok filtresi bulunuyor. Tamamının üzerine geçmek bu kitabın amacının çok dışında olacaktır dolayısıyla sadece birkaç örnek ile sonuçlarını göstermek istedik.
eaydin@dixon ~/calisma/im $ convert 1604.png -radial-blur 20 blurred.png
eaydin@dixon ~/calisma/im $ convert 1604.png -charcoal 4 charcoal.png
Görüntü Hakkında Bilgi Almak
Yukarıdaki komutların tamamında birtakım işlemler yaptık ancak görüntü dosyası hakkında hiç bilgi almadık. Bunun için identify komutu kullanılabilir.
eaydin@dixon ~/calisma/im $ identify 1604.png
1604.png PNG 177x205 177x205+0+0 8-bit DirectClass 32.9KB 0.000u 0:00.000
Dosya hakkında çok detaylı bilgi almak isterseniz -verbose seçeneğini kullanabilirsiniz. (Burada çıktıyı göstermiyoruz çünkü oldukça uzun)
identify -verbose 1604.png
Watermark Eklemek
Görüntülere kaynağını belirten birtakım ifadeler ekleyebilirsiniz. Bu kısımda watermarking yöntemlerini inceleyeceğiz.
En kolay yöntem, pek çok internet sitesinde gördüğünüz gibi, görüntünün köşesine bir not eklemektir.
eaydin@dixon ~/calisma/im $ composite label:"xkcd.com" 1604.png labelled.png
Öte yandan etiketimizi görüntünün altına yayılacak şekilde yerleştirebilirdik.
eaydin@dixon ~/calisma/im $ convert 1604.png -background Green \
label:'xkcd.com' -gravity center -append center-labelled.png
gravity seçeneğini daha farklı biçimde kullanabilirdik.
eaydin@dixon ~/calisma/im $ convert 1604.png -pointsize 20 -draw "gravity east \
fill blue text 5,12 'xkcd' " east_wm1.png
eaydin@dixon ~/calisma/im $ convert 1604.png -pointsize 20 -draw "gravity east \
fill blue text 5,12 'xkcd' \
fill white text 6,11 'xkcd' " east_wm2.png
Daha şık bir sonuç elde etmek için, önce görüntünün enini bir değişkende saklıyoruz, ardından saydam bir katmanla watermark'ımızı ekliyoruz.
eaydin@dixon ~/calisma/im $ width=$(identify -format %w 1604.png)
eaydin@dixon ~/calisma/im $ echo $width
177
eaydin@dixon ~/calisma/im $ convert -background '#0008' -fill white \
-gravity center -size ${width}x30 caption:xkcd.com 1604.png +swap \
-gravity south -composite wm_trans.png
Bir diğer seçenek, farklı bir görüntüyü orijinal görüntümüz ile karıştırıp watermark oluşturmaktır. Örneğin aşağıdaki penguen görüntüsü bizim imzamız olsun ve karikatürümüzün üzerine yerleştirmek isteyelim.
Aşaıdaki gibi bir komutla bu görüntüyü orijinal görüntümüzle birleştirebiliriz.
eaydin@dixon ~/calisma/im $ composite -watermark 30% -gravity north \
-geometry +0+15 penguin.jpg 1604.png wm_pen.png
Last updated