|
Php ile Grafik ( GD )
Jul 26,2007 00:00
by
canawar
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("Content-type: image/jpeg"); ?> 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. header("Content-type: image/jpeg"); $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 header("Content-type: image/jpeg"); $resim = imagecreate(250,250); $kirmizi = imagecolorallocate( $resim, 255,0,0 ); imagefill ( $resim,0,0,$kirmizi ); imagejpeg($resim); imagedestroy($resim); ?> 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 ); header("Content-type: image/jpeg"); $resim = imagecreate(250,250); $kirmizi = imagecolorallocate( $resim, 255,0,0 ); $mor = imagecolorallocate( $resim, 100,50,100 ); imagefill ( $resim,0,0,$kirmizi ); imagefilledrectangle($resim,50,50,150,150,$mor); imagejpeg($resim); imagedestroy($resim); ?> 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 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. header("Content-type: image/jpeg"); $resim = imagecreate(300,300); $kirmizi = imagecolorallocate( $resim, 255,0,0 ); $mor = imagecolorallocate( $resim, 100,50,100 ); imagefill ( $resim,0,0,$kirmizi ); imagefilledellipse($resim,150,150,50,50,$mor); imagejpeg($resim); imagedestroy($resim); ?> ►Ç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. header("Content-type: image/jpeg"); $resim = imagecreate(300,300); $kirmizi = imagecolorallocate( $resim, 255,0,0 ); $mor = imagecolorallocate( $resim, 100,50,100 ); imagefill ( $resim,0,0,$kirmizi ); imageline($resim,150,150,50,50,$mor); imagejpeg($resim); imagedestroy($resim); ?> ►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); 300x300 formatında bir resme 200.200 koordinatlarından başlayan Mor renginde oCRaCy yazalım header("Content-type: image/jpeg"); $resim = imagecreate(300,300); $kirmizi = imagecolorallocate( $resim, 255,0,0 ); $mor = imagecolorallocate( $resim, 100,50,100 ); imagefill ( $resim,0,0,$kirmizi ); imagestring($resim,1,200,200,"oCRaCy",$mor); imagejpeg($resim); imagedestroy($resim); ?> Kolay Gelsin Daha ayrıntılı bilgi için > http://tr.php.net/manual/en/ref.image.php |