PHP amca bize bu işlemi yapmayı sağlayan fonksiyonlar oluşturmuş ancak bu fonksiyonları kullanabilmek için GD kütüphanesi desteğini aktif hale getirmemiz gerekiyor.
GD Kütüphanesi Aktif etmek ;
-PHP.ini dosyasında bulunan bazı uygulamaların destekleri kapalı olarak gelmektedir. Bu destekleri kullanıma açmak için ilk önce PHP.ini dosyasını açıyoruz ve php_gd2.dll satırını arıyoruz. Bu satırı bulduğumuzda önündeki noktalı virgülü ( ; ) kaldırıyoruz.
;extension=php_gd2.dll
Daha sonra sunucumuzu yeniden başlatıyoruz ve kullanıma hazır...
Bir Demo ile nasıl bir görüntü elde edeceğimizi inceleyelim.
öncelikle pasta dilimi grafikleri yapmadan php ile grafik işlemlerini yaparken kullanacağımız fonksiyonlardan bahsedelim.
1 ) ImageCreate()
" ImageCreate(x_boyutu,y_boyutu) " şeklinde kullanılır. x ve y olarak belirttiğimiz boyutlarda boş bir resim alanı oluşturur.
2 ) imagestring()
Bu fonksiyonla belirtilen metni belirtilen kordinatlara belirtilen renk ile yazmayı sağlar.
" imagestring(img,yazıtipi,x,y,yazı,renk); "
3 ) imagecolorallocate()
Oluşturulan bir grafiğin renklerini belirlemek için kullanılır. " imagecolorallocate(resim,red,green,blue) " şeklinde kullanılır.
4 ) imagearc()
istenilen boyutta yay çizmemizi sağlar.
" imagearc(resim,x_kenar,y_kenar,x_genişlik,y_yukseklik,yay_baslangıç,yay_bitiş,renk) " şeklinde kullanılır.
5 ) imagefilledarc()
Tuvalimiz üzerine belirtilen kordinatlarda yay parçası oluşturur.
İmagefilledarc() Fonksiyonunu kullanırken belirtmemiz gereken stiller vardır.
bunlar;
IMG_ARC_CHORD : düz çizgi ile açı oluşturmaya başlar ve sonlandırır.
IMG_ARC_PIE : yuvarlanmış bir açı oluşturmaya başlar ve sonlandırır.
IMG_ARC_NOFILL : Renk dolgusu istenmeyenana hatların oluşturulması gerektiğinde kullanılır.
IMG_ARC_EDGED : Ana Hatları Oluşturan Çizgilerin iptali için kullanılır.
" imagefilledarc(resim,x,y,x_genişlik,y_yukseklik,başlangıç_açı,bitiş_açı,renk,STİL) " şeklinde kullanılır.
Şimdi Pasta dilimi Grafik İçin hangi kodları yazacağımıza bakalım.
header("content-type:image/gif"); // gif formatında çalışacağımız belirtiyoruz
$pasta=array(50,85,25,35,67); // pasta dilimi parçalarımız
$veri=array("elma","armut","Erik","kiraz","muz");
$toplam=array_sum($pasta); // pasta dilimi parçalarının toplamı , bize %lik dilim hesaplarken lazım olacak
$img=imagecreate(420,240); // 420 px genişliğinde 240px yükseliğinde tuval oluşturuyoruz
$bg=imagecolorallocate($img,0,0,0); // tuvalimizi siyah rengine boyuyoruz
$width=200;
$height=200;
$cx=$width/2;
$cy=$height/2;
$start=0;
for($i=0;$i $e=round(($pasta[$i]/$toplam)*100,2);
$end=round($e*360/100); // pasta dilimi için açı değeri
$rgb1=rand(200,255);
$rgb2=rand(100,255);
$rgb3=rand(0,255);
$renk=imagecolorallocate($img,$rgb1,$rgb2,$rgb3);
imagefilledarc($img,$cx,$cy,$width,$height,$start,$start+$end,$renk,IMG_ARC_PIE);
$start+=$end;
imagefilledrectangle($img,230,10+$i*30,250,30+$i*30,$renk);
imagestring($img,2,256,12+$i*30,$veri[$i].' %'.$e.' ',$renk);
}
imagegif($img);
imagedestroy($img);
?>
Bu yazımda PHP ile grafik oluşturmayı ve Pasta Dilim Grafiği yapmayı gördük bir sonraki yazımda jquery desteği ile efektli bir görünüm sağlamaya çalışacağız...
İyi Çalışmalar Dilerim...