LAKI PINGVINI<>
032012<><>

ImageMagick

Čarobni štapić za slike

Kada se pomene obrada digitalnih slika, običan Zemljanin najpre pomisli na Adobe Photoshop, korisnici slobodnog softvera na GIMP, a gikovi na ImageMagick. Šta je to, pitate se vi? Stručno a razumljivo rečeno, ImageMagick je paket softverskih rešenja koja omogućavaju kreiranje, uređivanje, kombinovanje i konverziju bitmapa. Ova višeplatformska alatka funkcioniše na platformama GNU/Linux, Windows, Mac OS X i iOS kao frontend (u terminalu okruženja), odnosno backend (pozivanjem iz drugih programa i skripti). U stanju je da razume više od 100 različitih formata bitmapa (npr. JPEG, TIFF, GIF, PNG, BMP), kao i najkorišćenije vektorske formate (PostScript, SVG, PDF). Kako bismo upotpunili sliku o „svašta nešto” moćima ovog alata, pomenućemo još i to da pomoću njega slike mogu da se obrađuju radi promene dimenzija, izvrtanja, rotiranja, izobličenja, štelovanja boja, primene različitih specijalnih efekata, ispisa teksta, pa čak i geometrijskih oblika.

Postoji velika verovatnoća da korisnici slobodnih operativnih sistema na svojoj mašini već imaju preinstaliran ImageMagick, a ukoliko ga nema, to se može učiniti instalacijom paketa imagemagick iz menadžera paketa distribucije, koji će se postarati da ispuni sve međuzavisnosti neophodne za funkcionisanje ovog paketa.

Najčešća upotreba ImageMagicka na desktop računarima je za paketsku konverziju formata i promenu veličine slika. Nešto manje zastupljena, ali nikako zanemarljiva upotreba, jeste kombinovanje više slika u jedan indeks, tzv. Contact Sheet (npr. indeks galerije slika većih dimenzija na jednoj stranici). Funkcionisanje i korišćenje ovog paketa najbolje ćemo dočarati konkretnim primerima.

Promena veličine slike

Za konverziju formata i promenu veličine slike, opkrajanje i slične akcije koristi se alatka convert iz paketa ImageMagick. Sintaksa ove naredbe je (kucajte sve u jednom redu):

convert [ulazne-postavke] ulazna-datoteka [izlazne-postavke] izlazna-datoteka

Najjednostavnija konverzija formata postiže se izostavljanjem ulaznih i izlaznih postavki i navođenjem samo ulazne i izlazne datoteke. Na primer:

convert slika.bmp slika.jpg

Kod konverzije može bliže da se odredi kvalitet izlazne datoteke za JPEG, MIFF i PNG formate opcijom -quality, tako da JPEG sa kompresijom na 92 odsto dobijamo sintaksom

convert slika.bmp -quality 92 slika.jpg

Ako želimo da izlazna slika ima specifične dimenzije, dakle da originalnoj slici, osim konverzije formata, želimo da promenimo i dimenzije, koristimo sintaksu

convert slika.bmp -resize 800x600 slika.jpg

Promena veličine na ovaj način vrši se proporcionalno, tako da se duža strana slike uklapa u horizontalnu, odnosno vertikalnu dimenziju datu za opciju -resize. Nedostatak ovakve promene veličine slike uočljiv je kod slika koje nemaju isti odnos širine i visine kao ciljna dimenzija, pa će se tako od pejzažno orijentisane slike dimenzija 3888 x 2592 px dobiti slika dimenzija 800 x 533 px umesto željenih 800 x 600 px. Ukoliko je potrebno forsirati izlaznu dimenziju bez poštovanja proporcija, iza dimenzije treba dodati obrnutu kosu crtu i uzvičnik, dakle:

convert slika.bmp -resize 800x600\! slika.jpg

Treća mogućnost je proporcionalna promena veličine sa opkrajanjem na željenu dimenziju. Ovo postižemo na taj način što definišemo samo užu stranu kod opcije -resize, a potom oko centralnog dela slike (opcija -gravity) isečemo ono što štrči opcijom -crop:

convert slika.bmp -resize x600 -gravity center -crop 800x600+0+0 slika.jpg

Kada je paketska obrada slika kao adut ImageMagicka u pitanju, vrhunac moći postiže se kombinovanjem Bash skripti (školu Basha objavili smo u SK 9/2011, 10/2011, 11/2011 i 12/2011) i alatki ImageMagick. Ukratko, za promenu veličine svih JPEG slika u trenutnom direktorijumu koristićemo sledeću sintaksu, koja može da se prilagođava potrebama korisnika:

for i in *.jpg; do convert $i -resize 800x600 small_$i; done

Contact Sheet

Kada treba napraviti Contact Sheet pregled slika koje se nalaze u nekom direktorijumu, ImageMagick to čini pomoću alatke montage. Pojedine opcije, iako se isto zovu kao kod alatke convert, u ovom slučaju imaju drugačije značenje (npr. opcija -tile kod upotrebe sa alatkom convert datu sliku popločava, dok kod alatke montage određuje broj kolona za slaganje umanjenih slika). Da bismo napravili Contact Sheet od JPEG slika u trenutnom direktorijumu tako da umanjene slike imaju maksimalnu širinu 120 piksela, da budu raspoređene u pet kolona i udaljene jedna od druge po pet piksela sa sve četiri strane, upotrebićemo sintaksu

montage *.jpg -tile 5 -geometry 120x+5+5 index.jpg

Rezultat ove sintakse je ne baš fensi indeks slika. Da bismo ga ulepšali, možemo da dodamo senku ispod umanjenih sličica jednostavnim dodavanjem opcije -shadow

montage *.jpg -tile 5 -geometry 120x+5+5 -shadow index.jpg

Kako bismo povećali upotrebnu vrednost indeksa slika, svakoj umanjenoj sličici možemo da dodamo i neku informaciju kao oznaku, na primer naziv datoteke i njenu dimenziju. Ovo činimo tako što ispred ulaznih slika postavimo opciju -label

montage -label ’%f\n%G’ *.jpg -tile 5 -geometry 120x+5+5 -shadow index.jpg

Kao što se može i videti, kod ispisa oznake možemo da koristimo specifičan tekst ili neki podatak o slici (tzv. ImageMagick Escapes). Njih ima mnogo, a najčešće su korišćeni %t za naziv datoteke bez naziva direktorijuma i ekstenzije, %f za naziv datoteke sa ekstenzijom, %w za širinu, %h za visinu, %G za dimenziju slike kao ekvivalent za %wx%h, %[size] za veličinu datoteke, a za kompletan spisak pogledajte goo.gl/LpsU3.

Familija i stil fonta koji se koristi za ispis oznake može da se prilagodi potrebama korisnika. Ako želimo da oznaka bude ispisana fontom Arial Normal veličine 10pt, gornju sintaksu ćemo proširiti na sledeći način:

montage -label ’%f\n%G’ -pointsize 10 -font Arial-Normal *.jpg -tile 5 -geometry 120x+5+5 -shadow index.jpg

Dodavanje teksta na sliku

Za dodavanje teksta na sliku možemo da koristimo alatku convert u kombinaciji sa opcijom -annotate. Napred pomenuti izbor fonta i veličine važi i u ovom slučaju. Boju ispisanog teksta postavljamo opcijom -fill, a poziciju ispisanog teksta opcijom -gravity.

Kao boju ispisa možemo da koristimo HEX kombinaciju (npr. #ffffff za belu ili #000000 za crnu), RGB kombinacju (npr. rgb(255,255,255) za belu i rgb(0, 0, 0) za crnu), odnosno naziv boje. Konkretno, za ispisivanje ljubičastog natpisa „Svet kompjutera / Laki pingvini” u gornjem desnom uglu slike fontom Arial Normal veličine 48pt koristićemo sintaksu

convert slika.bmp -font Arial-Normal -pointsize 48 -fill BlueViolet -gravity NorthEast -annotate 0 ’Svet kompjutera / Laki pingvini’ slika.jpg

• • •

Osim pomenutih convert i montage, ImageMagick sadrži ukupno 11 alatki, od kojih bismo kao interesantne za krajnje korisnike još izdvojili identify za prikaz informacija o slici, composite za slojevito spajanje više slika jedne preko druge, display za prikaz slika (image viewer) i import za čuvanje trenutnog izgleda ekrana, pojedinačnog prozora ili određene površine ekrana (screenshot).

Ovaj paket alatki za obradu bitmapiranih slika mnogo je moćniji i nudi mnogo više od onoga što smo na ovako kratkom prostoru uspeli da predstavimo. Svakako će vam od pomoći biti man stranice pojedinačnih alatki, ali nemojte oklevati da pogledate zvaničnu web stranicu projekta i uposlite Google ako negde zapne. ImageMagick je prevelik da biste ga znali u prste, ali je korisno imati ga pri ruci.

Aleksandar UROŠEVIĆ

 
ImageMagick
Šta mislite o ovom tekstu?
Tomahawk 0.3.3
Cinnamon 1.2

Spisak vrednosti opcija
Spisak vrednosti svake opcije nekog ImageMagick alata koja može da ima različite vrednosti dobija se pozivanjem opcije -list tog alata, uz dodavanje naziva opcije za koju tražimo spisak vrednosti.
Na primer, za spisak fontova koristimo convert -list font, za spisak boja convert -list color, za spisak pozicija convert -list gravity itd.

Platforma:
GNU/Linux, Windows, Mac OS X, iOS
Licenca:
Apache 2.0
Veličina:
12,3 MB source; oko 7,15 MB na HD-u
Cena:
program je besplatan
Adresa:
www .imagemagick .org
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera