GD ile Grafik Oluşturma

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); // 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 250×250 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 https://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ı 250×250 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 );

NOT: $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. )

300×300 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 );

300×300 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);

300×300 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);
?>

Bu cevap yeterince yardımcı oldu mu?

 Bu dökümanı yazdır

Bunlarada Gözatın

Domain sürem bitti, Yeniden aktif hale getirmek için ne yapmalıyım?

Sitemizde barındırdığınız domanin sürenizin bitmesi durumunda yeniden süre uzatma...

Hostinginizin CPU' su Kaç?

CPU konusunda cloud altyapımız sayesinde yükü birden fazla sunucuya dağıtmaktayız bu...

Siteye Giriş yapamıyorum Bu Website Kullanılamıyor Hatası Veriyor Ne Yapmalıyım?

Sistemle alakalı bir problem olmaması muhtemeldir. DNS ayarlarınızda bir sorun olabilir....

Satış Ortaklığı Sistemini Nasıl Kullanabilirim?

Satış ortaklığı sistemimiz mevcuttur fakat satış ortaklığı sistemi için en az 5 adet aktif...

Daha fazla trafik ve web alanına ihtiyacım var. Ne yapmalıyım?

Bizi telefonla arayabilir veya destek bildirimi göndererek bizimle irtibata...