Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Tip Dönüşümü
  • Boyut Dönüşümü
  • Sadece Küçült
  • Sadece Büyüt
  • Döndürme İşlemleri
  • Aynalama İşlemleri
  • Filtreler
  • Görüntü Hakkında Bilgi Almak
  • Watermark Eklemek
  1. Gelişmiş Terminal Komutları

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

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
PreviousrenameNextwget

Last updated 2 months ago

Kaynak:

http://xkcd.com/1604/
Orijinal Görüntü
Döndürülen görüntü
Orijinal görüntü
Flip edilmiş görüntü
Flop edilmiş görüntü
Hem Flip hem de Flop edilmiş görüntü
Radial Blur
Charcoal