Anasayfa > Programlama > PHP > Php ile Grafik ( GD )

Php ile Grafik ( GD )




⇒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
oCRaCy [ ocracy@msn.com ]

Bu makale hakkında ek bilgi eklemek için buraya tıklayınız

Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 7-9-2006  Okunma: 2801

Bu Makaleye Verilen Puan:    Bu makaleye puan verilmemiş.
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
Reklam Netinternet
Bazı hakları saklıdır: İçeriğin editör ve yazarlarımız tarafından oluşturulan kısımları ve site tasarımının hakkı saklıdır.  Bu sayfa en iyi 1280x1024 ve 1024x768 çözünürlükte izlenir.
Powered by BilgiPortal v2.2
Emlak Yorumlar Müzik estetik