Profili Göster

Php ile Grafik ( GD Library )

Kerem Bekman Tarih: 2/07/2008 Yorum: 0 adet

Okunma : 329 Tutanlar: Bu yazıyı 1 kişi tuttu.

GD DESTEĞİ

Windows sistemlerde GD desteği için php.ini dosyamızdaki ;extensionphpgd.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 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 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ı 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<------->+ 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. )

    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,50,50,250,250,$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);

    1. 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);

    2. imagettfbbox kullanarak istediğimiz yere yazı yazalım..

    
    $boyut = "25";
    
    $yazi = "ocracy";header("Content-type: image/png");
    
    $resim = imagecreate (500,500);
    
    $kirmizi = imagecolorallocate( $resim, 255, 0, 0 );
    
    $beyaz = imagecolorallocate( $resim, 255, 255, 255 );
    
    imagefill($resim,0,0,$kirmizi);
    
    $size = imagettfbbox($boyut,0,"zombie.ttf",$yazi);
    
    /* $size şuan bir dizi değişkeni ve içindeki veriler şöyle
    
    Yazının
    
    $size[0]> sol alt köşesinin X koordinati
    
    $size[1]> sol alt köşesinin Y koordinati
    
    $size[2]> sağ alt köşesinin X koordinati
    
    $size[3]> sağ alt köşesinin Y koordinati
    
    $size[4]> sağ üst köşesinin X koordinati
    
    $size[5]> sağ üst köşesinin Y koordinati
    
    $size[6]> sol üst köşesinin X koordinati
    
    $size[7]> sol üst köşesinin Y koordinati
    
    */
    
    //Öncelikle yazımızın enini ve boyunu bulacaz
    
    $yazi_en = abs($size[2]-$size[0]);
    
    $yazi_boy = abs($size[3]-$size[5]);
    
    // En için Sağ altın x koordinatından sol altın x koordinatinını çıkardık
    
    // Boy için de sağ altın y koordinatından sağ üstün y koordinatını çıkardık
    
    //Yazının enini ve boyunu bulduk artık istediğimz yere yerleştirebiliriz
    
    //örneğin kenarlardan 5px boş kalcak şekilde yazımızı sağ alta yazalım.
    
    $yazix = 500-5-$yazi_en;
    
    $yaziy = 500-5;
    
    imagettftext($resim,$boyut,0,$yazix,$yaziy,$beyaz,"zombie.ttf",$yazi);
    
    // Not: imagettftext fonksiyonunda verdiğimiz x ve y koordinatları yazını sol alt koordinatlarıdır.
    
    imagepng($resim);
    
    imagedestroy($resim);

    Daha ayrıntılı bilgi için > http://tr.php.net/manual/en/ref.image.php

    aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

    İçeriğe kayıtlı yorum bulunmuyor. İlk yorumu siz buradan ekleyebilirsiniz.


    aç-kapa Yazarın Diğer Yazıları

    Makale

    İlişkili makale bulunamadı.

    yeni bir tane ekleyin

    Haber

    İlişkili haber bulunamadı.

    yeni bir tane ekleyin

    MMIstanbul Adobe UG MMIstanbul Adobe UG

    adobe user group

    ColdFusion, Flex, AIR, Flash, PDF, Dreamweaver, Fireworks, Photoshop, Illustrator, iNdesign, Premiere, Soundbooth, Lightroom, InCopy, JRun, LiveCycle, Acrobat, AfterEffects, Resmi Adobe Kullanıcı Grubu.

    yeni üyelik | şifremi unuttum

    aç-kapa Konferans IBM Yazılım Zirvesi '08, Değişim Açlığı

    IBM Yazılım Zirvesi '08, Değişim Açlığı

    Değişim açlığı, Hungry for Change teması çerçevesinde düzenlenecek IBM Yazılım zirvesi Ankara ve İstanbulda düzenlenecek: 15 Ekim 2008 Swissotel the...
    Kategori: Konferans

    aç-kapa Fuar Contemporary İstanbul Sanat Fuarı

    Contemporary İstanbul Sanat Fuarı

    Contemporary İstanbul Sanat Fuarı, 16-19 Ekim tarihleri arasında sanatseverlerle buluşacak. Bu yıl üçüncüsü düzenlenen fuar, İstanbul Lütfi Kırdar Ulu...
    Kategori: Fuar

    aç-kapa Yarışma TBD - Halıcı 15. Bilgisayarla Beste Yarışması

    TBD - Halıcı 15. Bilgisayarla Beste Yarışması

    TBD – Halıcı 15. Bilgisayarla Beste Yarışması TBD – Halıcı Bilgisayarla Beste Yarışması Türkiye Bilişim Derneği tarafından düzenlenen &q...
    Kategori: Yarışma

    aç-kapa Seminer MS Project ile Proje Yönetimi

    MS Project ile Proje Yönetimi

    [b]ZeruMax bilisim hizmetleri MS PROJECT İLE PROJE YÖNETİMİ Ms Project kullaniminin uygulamali ve pratik olarak anlatilacagi bu egitimi kacirmayin&#...
    Kategori: Seminer

    aç-kapa Yarışma Üniversiteler Arası Öğrenci Filmleri Yarışması

    Üniversiteler Arası Öğrenci Filmleri Yarışması

    Maltepe Üniversitesi’nin geleneksel olarak düzenlediği 6. Üniversitelerarası Öğrenci Filmleri Yarışması, kitle iletişim alanındaki yapım ve yayı...
    Kategori: Yarışma

    üyeler Son Kahramanlar...

    stats Kimler Burada? web stats

    Son 1 dakika içinde MMIstanbul' da 235 (0 kayıtlı, 235 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

    coldfusion mysql ubuntu
     
    sponsor adobe istanbul