|
|
Bu makalenin farkl� dillerde bulundu�u adresler: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce |
taraf�ndan Katja Socher <katja(at)linuxfocusorg> Yazar hakk�nda: Katja, LinuxFocus dergisinin Alman edit�r�d�r. Kendisi Tux, film ve foto�raflardan ho�lan�r, denizi sever. Kendi sanal dokusuna buradan ula�abilirsinizhere. T�rk�e'ye �eviri: Murat Mestani <mestani(at)be.itu.edu.tr> ��erik:
|
�zet:
Bu makalede Imagemagick sihirbaz�n�n grafik ara�lar�n� kendi hammaddesiymi�, kabu�u da sanki b�y�l� sopas�ym�� gibi kullanarak neleri yapabildi�ine g�z
ataca��z.
Eski zaman sihirbazlar�(wizard) hammaddelerini al�r, onlar� b�y�k
bir kapta birbirleriyle kar��t�r�r b�y�l� sopalar�n� sallar ve sihirlerini
f�s�ldarlard��ve aniden birisi kurba�aya d�n���rd�. Modern zaman sihirbazlar�,
toplumdaki di�er insanlar gibi olduk�a uzmanla�m��lard�r. B�y� kitaplar� sadece
belli ba�l� i�ler i�in birka� b�y� i�ermektedir. Bu demektir ki Imagemagick'in
genel ama�l� kullan�m i�in b�y� kitab� yoktur. Pek �ok y�nlerden 'Gimp' veya
di�er grafik programlar� ile rekabet edemez ancak �ok kullan��l� olan uzmanla�m��
�zellibbklere sahiptir.
Imagemagick'in ger�ek g�c�, kabukta �al���rken pek �ok uygulaman�n otomati�e
ba�lanabilme �zelli�inin alt�nda
yatmaktad�r.
Ancak baz� sihirleri anlatmadan �nce k�saca ana ba�l�klar� g�zden
ge�irelim:
veya ImageMagick nedir?
ImageMagick, imgelerle �al��abilmek i�in grafik ara�lar�n�n bir araya getirilmi� halidir. Bu ara�lar: g�ster (display), d��ar�dan dahil et (import), canland�rma (animation), monte et (montage), d�n��t�r (convert), mogrify, tan�mla (identify) ve kat��t�r (combine) d�r.convert -geometry 60x80 image.gif out.gifkomutu image.gif dosyas�n�, geni�li�i 60, y�ksekli�i 80 olan �l��ye getirir ve olu�an resmi out.gif olarak kaydeder.
#!/bin/sh for f in $* ;do convert -geometry 80x80 $f t_$f echo "<a href=\"$f\"><img src=\"t_$f\" width=\"80\" height=\"80\"></a>" done # end of script�eklinde yazmam�z gerekir.(Bu sat�rlar� diledi�iniz herhangi bir yaz� edit�r�n�n (vi, emacs, nedit, kedit...) i�ine yaz�n ve ev dizininiz alt�ndaki mksmallimage alt�na kaydedin. Daha sonra bash kabu�una gidin ve
chmod 755 /home/katja/mksmallimage(katja yerine ev dizininizin ad�n� yaz�n) Ard�ndan /home/katja/mksmallimage xxx.jpg *.gif yaz�n. Bu b�t�n gif dosyalar�n� xxx.jpg de dahil olmak �zere d�n��t�recektir.
display "vid:*.jpg"Bu, mevcut dizin i�inde t�m jpg resimlerinin g�rsel resim dizinini olu�turur. Veya:
display "vid:frog/*"frog dizini i�indeki t�m resimlerinizin g�rsel resim dizinini olu�turur.
<a href="file.gif"><img src="t_file.gif" width="60" height="80"></a>Orjinal dosya file.gif, mini resim ise t_file.gif'tir.
for f in $* ;do convert -geometry 80x80 $f t_$f echo "<a href=\"$f\"><img src=\"t_$f\" width=\"80\" height=\"80\">" doneYukar�daki yaz�l�m, komut sat�r�nda belirtildi�i gibi t�m resimler �zerinde bir �evrim olu�turarak mini resimler yarat�r ve html kodunu ekrana yazar. B�ylece html kodunu sanal dokumuza kopyalay�p yap��t�rabiliriz.
convert image.gif image.jpgkomutuyla olur. D�n��t�r komutu, dosya ad�n�n uzant�s�ndan hangi yap�y� kullanmas� gerekti�ini bilir.
for f in $* ;do if echo "$f" | grep -i "jpg$" > /dev/null ; then gif=`echo "$f" | sed 's/jpg$/gif/i'` echo "converting $f to $gif ..." convert 80x80 $f $gif else echo echo "$f is not a jpg file, ignored" fi doneBunun yan�nda Imagemagick'in bildi�i �ok miktarda ba�ka yap�lar mevcuttur.
combine -gravity SouthEast -compose Over img.jpg logo.gif stamp_img.jpg"gravity SouthEast" se�ene�i logo.gif'I sa� alt k��eye koyar. "compose Over" �st�ste binmenin oldu�u yerde resmin logoyla yer de�i�tirece�ini s�yler.
identify image.jpg results in image.jpg 340x254 DirectClass 13939b JPEG 0.1u 0:01Bunun bizim sihirbaz�m�zla ne ilgisi var diye sorabilirsiniz. Ancak iyi bir sanal doku dizayn edebilmek i�in daha sayfalar y�klenirken t�m resimlerin ger�ek geometrisini verebilmelisiniz. Html kodu a�a��daki gibi olacakt�r:
<img src="image.jpg" width="340" height="254" alt="[sample picture]">Resimlerimizin farkl� boyutlar� varsa ve herbirinin y�kseklik ve geni�liklerini bilmiyorsak yard�m etmesi i�in tan�mla(identify) komutunu kullan�r�z. "Tan�mla" komutunun ��kt�s�n� okuyup bu sat�r� yazd�ran bir kabuk yaz�l�m� olu�tururuz. Resmin geometrisi, "tan�mla" program�ndaki ��kt� s�ras�n�n ikinci parametresidir. Bu parametreyi elde etmek i�in awk komutunu kullan�r�z:
identify image.jpg | awk '{print $2}' results in 340x254�imdi bu geometriyi y�kseklik ve geni�li�e b�lmemiz gerekir. Bu da:
echo 340x254 | sed 's/[^0-9]/ /g' | awk '{print $1}'�eklinde olur ki bu da geni�li�i verir. Y�kseklik ise:
echo 340x254 | sed 's/[^0-9]/ /g' | awk '{print $2}'Kabuk komutlar�na �ok fazla yo�unla�may�n. E�er hen�z tam olarak anlamam��san�z sadece verildi�i �ekliyle kabul edin. Bir sonraki LinuxFocus say�s�nda kabuk programlamas� �zerine bir makale yay�nlanacak. Orada t�m sihrini size a��klayaca��z. Yaz�l�m�n son hali a�a��daki bibi olacakt�r:
file=$1 geometry=`identify $file | awk '{print $2}'` # geometry can be 563x144+0+0 or 75x98 # we need to get rid of the plus (+) and the x characters: width=`echo $geometry | sed 's/[^0-9]/ /g' | awk '{print $1}'` height=`echo $geometry | sed 's/[^0-9]/ /g' | awk '{print $2}'` echo "<img src=\"$file\" width=\"$width\" height=\"$height\">"kabuk yaz�l�m�n� tamamlamak i�in gene yard�m metni ve hata kontrolu ekliyoruz. A�a��da imgsrcline ad�ndaki en son kabuk yaz�l�m�m�z bulunmaktad�r.
Imagemagick ile oynarken d�k�manlar ile ger�ek fonksiyonalite aras�nda bazen uyumsuzluklar g�rd�m. Baz� �zellikler de tam sabit de�il. Siz yukar�da g�sterilen �eyleri uygularsan�z gene de �ok faydal� oldu�unu g�receksiniz. Yukar�da listelenen fonksiyonlar �al���r haldedir. Ben ImageMagick-4.2.9 , ImageMagick-5.2.9 ve ImageMagick-5.3.0 versiyonlar�n� kulland�m ve burada ��rendi�iniz �zellikler hepsinde �al��maktad�r.
Umar�m ImageMagick ile neler yapabilece�iniz konusunda bir fikre sahip olmu�sunuzdur ve
yaz�l�mlar� kullanabileceksinizdir veya kendi sihirlerinizi bile yaratmaya ba�layabileceksinizdir.
�yi e�lenceler!
|
G�rsely�re sayfalar�n�n bak�m�, LinuxFocus Edit�rleri taraf�ndan yap�lmaktad�r
© Katja Socher, FDL LinuxFocus.org |
�eviri bilgisi:
|
2002-10-30, generated by lfparser version 2.31