Grafik ve Nesne Yönelimli Programlama İşlemlerini Yapmak

Grafik ve Nesne Yönelimli Programlama İşlemlerini Yapmak

11 Şubat 2020 0 Yazar: emrebalasar

Açık kaynak kod kullanarak grafik oluşturacağız, grafik üzerine yazı yazacağız, grafik boyutlandırma, kaydetme ve güvenlik kodu için grafik oluşturacağız.

GRAFİK İŞLEMLERİ

Grafik kelimesinin iki farklı anlamı vardır. Sayısal verilerin çizgilerle ifade edilmesine grafik denir. Bu tanım genelde matematiksel veya istatistiksel işlemlerin sonuçlarını görsel olarak değerlendirmek için kullanılır. Diğer anlamı ise, bir olayı veya nesneyi göstermek için çizilen şekle grafik denir. Grafik işleme ise, bir şekil, fotoğraf veya resim üzerinde düzenleme yapmak anlamına gelir. Bu bölümde daha çok grafik oluşturma, boyutlandırma gibi grafik işlemeye yönelik çalışmalar yapacağız.

PHP de grafik işlemleri gerçekleştirmek için GD Kütüphanesi kullanılır. GD resim işleme amaçlı bir ANSI C kütüphanesidir. Boutell.Com tarafından açık kaynak kodlu özgür bir yazılım olarak geliştirilmekte ve dağıtılmaktadır. GD kütüphanesi, JPEG, PNG, BMP, GIF ve XPM gibi grafik formatlarını destekler. GD kütüphanesi PHP ile birlikte gelmektedir ancak kullanabilmek için etkinleştirilmelidir.

GD kütüphanesinin etkinleştirilmesi

GD eklentisinin etkin olup olmadığını test etmek için test.php dosyasını,

phpinfo

şeklinde oluşturarak çalıştırınız. Sayfada GD eklentisinin aktif olduğu görülmelidir.

GD eklentisi
GD kütüphanesi

Eğer GD eklentisi etkin değil ise aşağıdaki işlem basamaklarını uygulayınız

  • Gd eklentisi yok ise bu eklenti indirilerek php dizinine kopyalayınız.
  • Php dizininde yer alan php.ini dosyasını herhangi bir metin editörüyle açınız.
  • extension_dir satırını bulunuz. (Kullanılan php sürümüne göre farklılıklar gösterebilir. Bu satır kütüphanenin hangi dizinde olduğunu gösterir.)
  • Varsa önündeki açıklama satırı anlamına gelen ; işareti siliniz.
  • ;extension=php_bz2.dll ile başlayan satırı bulup önündeki ‘;’ işaretini kaldırınız.
  • ;extension=php_gd2.dll ile başlayan satırı bulup önündeki ‘;’ işaretini kaldırınız.
  • Web sunucunuzu (apache) yeniden başlatınız.
php.ini dosyası
php.ini dosyası

Basit Grafik Oluşturma

Şimdi 200×200 boyutlarında siyah renkli grafiği oluşturan php kodlarını yazalım.

Default resim
Default resim

header() Deyimi

Tabela
Tabela

Header tabelaya benzer. Nasıl ki bir tabela bir yerin ne amaçla kullanıldığını ifade ediyorsa, header da sayfanın ne sayfası (html, grafik, pdf) olduğunu tarayıcıya bildirir. Tarayıcı header’a bakarak başlık bilgilerine göre sayfa içeriğini işler. İçerik text olabildiği gibi image da olabilir. header (“Content-type: image/png”); Content-type içeriğin ne olacağının tarayıcıya bildirildiği kısımdır. Grafik oluşturulacağı için, içerik image ve içerik formatı olarak da png belirliyoruz.

Dikkat: header komutunu php kodlarının en başına yazmak daha doğru bir ugyulama olacaktır.

Header Komutu
Header Komutu

imagecreatetruecolor Deyimi

Default (varsayılan) renkte (siyah) bir resim oluşturur. İki parametresi vardır. Bu parametreler ile resmin boyutunu ayarlanır.

imagecreatetruecolor komutunun kullanımı.
imagecreatetruecolor komutunun kullanımı.
imagecreatetruecolor komutunun kullanımı.
imagecreatetruecolor komutunun kullanımı.

Kullanıcı tercihli arkaplan ayarlamak istiyorsanız imagecreate komutu kullanmalısınız.

imagedestroy Deyimi

Oluşturulan her resim hafızada yer kaplar. Bu resimler oluşturulduktan sonra hafızadan silinmez ise sunucu gereksiz yere meşgul edilmiş olur. Bu durum, bir süre sonra sunucumuzun yavaşlamasına hatta hizmet veremeyecek duruma gelmesine sebep olacaktır. Bu tür problemlerin önüne geçmek için oluşturulan resimler hafızadan silinmelidir. imagedestroy deyimi resim için ayrılan belleği serbest bırakır.

imagedestroy komutunun kullanımı.
imagedestroy komutunun kullanımı.

imagecreate Deyimi

Kullanıcının istediği renkte ve boyutta resim oluşturmasını sağlar. Bu komut ile resim oluştururken resmin renginin de belirlenmesi gerekir. Aksi halde varsayılan renk olarak siyah kullanılır. Aşağıdaki örnekte yine varsayılan renkte bir resim oluşturalım ve diğer konumuzla birlikte renkli arkaplanın nasıl oluşturulacağını öğrenelim.

imagecreate komutu ile varsayılan resim oluşturma.
imagecreate komutu ile varsayılan resim oluşturma.

Grafiklere Renk Verme

imagecolorallocate Deyimi

imagecreate komutunu açıklarken renkli arka plan oluşturabileceğimizi ve resim oluşturma esnasında arkaplan renginin ayarlanması gerektiğini aksi halde default (varsayılan ) değer olan siyah arkaplan rengi oluşturulacağından bahsetmiştik. Şimdi istenilen renkte nasıl arkaplan oluşturulacağını öğrenelim. Resim oluşturma esnasında arkaplanı renklendirmek için imagecolorallocate komutu kullanılır. Renklendirmek için RGB (R: Kırmızı, G: Yeşil, B: Mavi) olarak nitelendirilen 3 temel rengin değerleri kullanılır. 3 rengin değeri ayrı ayrı değiştirilerek tonlama yapılabilir. Renk değerleri 0–255 arasında olabilir. Ayrıca renkler 0xff gibi hexedecimal olarak da ayarlanabilir.

imagecolorallocate ($resim int $kırmızı , int $yeşil , int $mavi);

Mavi renk oluşturmak için kullanılan renk kodunu R=0, G=0; B=205 olarak belirledik. Siz de bu değerlerle oynayarak istediniz rengi oluşturabilirsiniz. Ancak RGB değerlerinin herbiri 0-255 arasında olmalıdır.

RGB renk kodları
RGB renk kodları

Ayrıntılı renk aramaları için farklı farklı platformlar ve servisler var, benim önerdiğim 2 servis; w3schools Color Picker ve Adobe renk paleti.

imagefill Deyimi

Resim boyamak için kullanılır. 4 parametre alır. Resmi imagecreatetruecolor komutuyla veya imagecreate komutuyla oluşturmuş olsanız bile bu komut ile istediğiniz renge boyayabilirsiniz.

imagefill deyimi
imagefill deyimi

Diğer İşletmelerde Beceri Eğitimi yazılarına ulaşmak için buraya tıklayıp İşletmelerde Beceri Eğitimi kategorisine gidebilirsiniz.