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

Also Read

ini_set() disable hatası ve çözümü

ini_set() disable hatası güvenlik ayarlarından dolayı kaynaklanmaktadır. Hatayı aldığınız...

Email sunucularında Anti Virus-Spam Koruması var mı?

CloudBunny.net de satın aldığınız tüm email hesaplarında standart anti virüs ve anti...

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

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

Joomla, wordpress gibi yazılımlar için hangi web hosting paketini satın almalıyım ?

Sitemizin sunduğu hosting paketlerinden herhangi birini seçmeniz yeterli olacaktır,...

Alan adımı tescil ettirdikten sonra park sayfası (domain park) hizmeti sağlıyor musunuz?

Evet, dilerseniz yönetim panelimizden hizmetlerim/detayları görüntüle...