Php ile grafik (GD library) [Giriş]
GD DESTEĞİ
Windows sistemlerde GD desteği için php.ini dosyamızdaki ;extension_php_gd.dll satırın başındaki noktalı virgülü kaldırmamız gerekir.
Linux sistemlerde ise www.boutelll.com/gd adresinden, dosyaları indirip derlememiz gerekir.
Grafik Oluşturuyoruz
Grafik oluştururken Php ye bu sayfayı Grafik olarak kullancağımza dair bilgi vermemiz gerekir, bunun içinde header fonksiyonlarından yararlanıcaz.
header için type olarak image/jpeg kullandık, bu başlık jpeg formatında bir resim oluşturmak için png için image/png kullanabiliriz.
Şimdi bir tane resim oluşturalım.
Resim alanı oluşturmak için imagecreate(); ve (Jpeg formatı için) imagejpeg();, kullandığımız belliği boşaltmak içinde imagedestroy(); fonksiyonlarını kullanıyoruz.
-
-
$resim = imagecreate(250,250); // Bu fonksiyonla resim alanımızın boyutlarını belirledik.
-
-
imagejpeg($resim); // ve burda da boyutlarını belirlediğimiz resmi oluşturduk.
-
-
imagedestroy($resim); // Burda ise Resim oluştukdan sonra bellekte yer kaplar. Bellekti kapladığımız yeri silmek için bu fonksiyonu kullandık.
NOT: Resim oluşturken renk belirlemediğimizde Php otomatik olarak Siyah rengini kullanır.
Bu yüzden bu php kodumuzu çalıştırdığımzda 250x250 formatında siyah bir resim oluşur.
Renk kullanımı
Renk kullanmak için imagecolorallocate(); fonksiyonunu kullanıyoruz.
Kullanımı: $renk = imagecolorallocate($resim,$R,$G,$B);
NOT: Renk oluştururken RGB ( Red Green Blue ) renk sistemini kullanıcaz RGB hakkında bilgi için http://en.wikipedia.org/wiki/RGB adresini inceleyebilirsiniz.
Resmi boyamak
imagefill(); İstediğimiz koordinatı istediğimiz renge boyamak için kullanılır. Eğer komple boyamak istiyorsak 0,0 koordinatlarını veriyoruz.
Bu kodumuzun çıktısı 250x250 formatlarında kırmızı bir resim olucaktır.
Resimde obje kullanmak
Obje olarak Dikdörtgen, Daire/Elips, Çizgi, Yazı kullanımına değincez.
Dikdörtgen
Dikdörgen oluşturmak için imagefilledrectangle(); fonksiyonunu kullanıyoruz.
Kullanımı: imagefilledrectangle ( $resim, $x1,$y1,$x2,$y2,$renk );
Bu kod ile X düzleminde 50 ye 150 ve y düzleminde 50 ye 150 arasındaki kalan alan mor renginde dikdörtgen yerleştirdik.
NOT: Koordinat belirlerken matematik te bildiğimiz koordinat sistemi ile aynı mantıkla koordinat belirliyoruz.
Sağdan sola -x<------->+ x koordinati
yukarıdan aşşağıya y koordinatı ( yukarısı + aşağısı - )
Daire/Elips
Daire veya elips oluşturmak için imagefilledellipse(); fonksiyonunu kullanıyoruz.
Kullanımı: imagefilledellipse ( $resim, $x,$y,$W,$H,$renk );
$x ve $y değerleriyle oluşturacağımız elipsin merkez koordinatlarını, $W değişkeniyle elipsin eninin boyunu $H ilede Yukseklik boyunu ayarlıyoruz ( Haliyle Daire oluşturmak için $W ile $H nin eşit olması gerekir. )
300x300 formatında bir resimin tam ortasına yarıçapı 50 olan bir çember yerleştirelim.
Çizgi
Çizgi (line ) oluşturmak için gerekli fonksiyon imageline();
Kullanımı: imageline ( $resim, $x1,$y1,$x2,$y2,$renk );
300x300 formatında bir resme 50.50 koordinatlarından 250.250 koordinatlarına giden bir çizgi oluşturalım.
Yazı
Resmimizde istediğimiz koordinata yazı yazmamız mümkündür bunun için imagestring(); fonksiyonunu kullanıyoruz.
Kullanımı: imagestring($resim,$font(int),$x,$y,"Yazı",$renk);
1. 300x300 formatında bir resme 200.200 koordinatlarından başlayan Mor renginde oCRaCy yazalım
2. imagettfbbox kullanarak istediğimiz yere yazı yazalım..
-
$boyut = "25";
-
-
-
$resim = imagecreate (500,500);
-
-
$kirmizi = imagecolorallocate( $resim, 255, 0, 0 );
-
-
$beyaz = imagecolorallocate( $resim, 255, 255, 255 );
-
-
imagefill($resim,0,0,$kirmizi);
-
-
$size = imagettfbbox($boyut,0,"zombie.ttf",$yazi);
-
-
/* $size şuan bir dizi değişkeni ve içindeki veriler şöyle
-
-
Yazının
-
-
$size[0]> sol alt köşesinin X koordinati
-
-
$size[1]> sol alt köşesinin Y koordinati
-
-
$size[2]> sağ alt köşesinin X koordinati
-
-
$size[3]> sağ alt köşesinin Y koordinati
-
-
$size[4]> sağ üst köşesinin X koordinati
-
-
$size[5]> sağ üst köşesinin Y koordinati
-
-
$size[6]> sol üst köşesinin X koordinati
-
-
$size[7]> sol üst köşesinin Y koordinati
-
-
*/
-
-
//Öncelikle yazımızın enini ve boyunu bulacaz
-
-
-
-
// En için Sağ altın x koordinatından sol altın x koordinatinını çıkardık
-
-
// Boy için de sağ altın y koordinatından sağ üstün y koordinatını çıkardık
-
-
//Yazının enini ve boyunu bulduk artık istediğimz yere yerleştirebiliriz
-
-
//örneğin kenarlardan 5px boş kalcak şekilde yazımızı sağ alta yazalım.
-
-
$yazix = 500-5-$yazi_en;
-
-
$yaziy = 500-5;
-
-
imagettftext($resim,$boyut,0,$yazix,$yaziy,$beyaz,"zombie.ttf",$yazi);
-
-
// Not: imagettftext fonksiyonunda verdiğimiz x ve y koordinatları yazını sol alt koordinatlarıdır.
-
-
imagepng($resim);
-
-
imagedestroy($resim);
Daha ayrıntılı bilgi için > http://tr.php.net/manual/en/ref.image.php
Benzer Yazılar
Yorum Yap
XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

29 Eylül 2007 |

5 kez puan verildi, Ortalama: 4.40 (5 üzerinden)









Etiketler:


