PHP ile Resim İşleme ve Düzenleme – 1

Bu yazımda PHP ile Resim İşleme ve Resim Oluşrumayı anlatacağım. Faydalı olması dileğiyle…

PHP’de resim işlemek için GD kütüphanesi kullanılır. GD kütüphanesi yaklaşık yüz fonksiyondan oluşan bir kütüphanedir. Bu kütüphane sayesinde resim işleyebilir, yeni resim oluşturabilir, grafik çizebilirsiniz. GD kütüphanesi ile PNG, JPEG, GIF gibi bir çok resim formatını rahatlıkla kullanabilirsiniz. Ben bu yazımda PNG formatını kullanacağım. Bu format ile sık kullanılan GD fonksiyonlarının kullanımını anlatacağım.

İlk olarak imagecreatefrompng() fonksiyonunu anlatacağım. Bu fonksiyon varolan bir PNG resminin üzerinden yeni bir resim oluşturmak için kullanılır. Düzenleyeceğimiz resmi çağırmak için kullanırız. Bu fonksiyonu

$resim = imagecreatefrompng(“resim.png”);

şeklinde kullanabiliriz. Resmimizi çağırdık şimdi çağırdığımız resmin boyutlarını öğrenmeyi göstereyim. Bunun için getimagesize() fonksiyonu kullanılır. Bu fonksiyon sayesinde çağırdığımız resmin genişliğini ve yüksekliğini alabiliriz. Bunları HTML içinde <img Yasak Kelime#146;…’ width=’xxx’ height=’xxx’> şeklinde kullanabiliriz. Bu fonksiyonu

$boyut = getimagesize (’resim.png’);
$genislik = $boyut[’0’];
$yukseklik = $boyut[’1’];

şeklinde kullanabiliriz.

Varolan bir resim yerine sıfırdan boş bir resim de oluşturabiliriz. Bunun için imagecreate() ya da imagecreatetruecolor() fonksiyonları kullanılır. Bu iki fonksiyonun farkı imagecreate() fonksiyonu paletli, imagecreatetruecolor() fonksiyonu gerçek renkli resim üretir. Her ikisinin de kullanımı aynıdır. Bu fonksiyonlar

$resim = imagecreate(100,100);

şeklinde kullanılır. Yukarıda kullandığımız fonksiyon 100-100 boyutlarında boş bir paletli resim oluşturur. Gösterdiğim diğer fonksiyonun kullanımı da aynı şekildedir. Her resim pixellerden, pixeller ise RGB(Red, Green, Blue) değerlerinden oluşur. Her pixelin belirli bir RGB değeri vardır. Bir pixele renk tanımlamak için önce rengi tanımlamak gerekir. Rengi imagecolorallocate() fonksiyonu ile yaparız. Bu fonksiyon ile kullanılacak renk değeri tanımlanır. Bu fonksiyon

$renk = imagecolorallocate($resim, $g, $b, $r);

şeklinde kullanılır. $resim, imagecreate, imagecreatetruecolor ya da imagecreatfrompng gibi fonksiyonlarla gösterdiğimiz, düzenleme yapılacak resimdir. Bu fonksiyon ile tanımladığımız renkleri resmi düzenlerken kullanacağız. Yazının devamını okudukça ne demek istediğimi anlayacaksınız. Buraya kadar resimleri düzenlenebilir hale getirmeyi gösterdim. Şimdi resimleri düzenlemeye geçelim.

Düzenlemede kullanacağımız fonksiyonlardan biri imagefill() fonksiyonudur. Bu fonksiyon resmi belirtilen bir renge boyar. Bu fonksiyon

imagefill($resim, 0, 0, $renk);

şeklinde kullanılır. $renk, imagecolorallocate fonksiyonu ile belirlenen renk değeridir. GD kütüphanesi ile yapılabilecekler elbette bunlarla sınırlı değil. Şimdi resmimize şekiller eklemeyi göstereceğim.

Resmimize içi dolu bir dikdörtgen ekleyelim. Bunun için imagefilledrectangle() fonksiyonu kullanılır. İçi boş dikdörtgen çizmek için ise imagerectangle() fonksiyonu kullanılır. Bu fonksiyonların kullanım şekli aynıdır. Bu fonksiyonlar

imagefilledrectangle($resim, x1, y1, x2, y2, $renk);

şeklinde kullanılır. (x1,y1) dikdörtgenin başlangıç noktasının, (x2,y2) bitiş noktasının koordinatlarıdır. $renk, az önce de belirttiğim gibi, imagecolorallocate fonksiyonu ile tanımlanmış dikdörtgenin rengidir.

Şimdi de dikdörtgene benzer bir yöntemle içi dolu elips çizelim. Bunun için imagefilledellipse() fonksiyonu kullanılır. İçi boş elips çizmek için imageellipse() fonksiyonu kullanılır. Dikdörtgendeki gibi içi boş ve dolu olanın kullanımı aynıdır. Tek fark $renk değeri birinde dolgu rengini diğerinde çizgi rengini belirler. Bu fonksiyonlar

imagefilledellipse($resim, x, y, g, y, $renk);

şeklinde kullanılır. (x,y) elipsin merkezini, g genişliğini, y yüksekliğini belirtir. $renk, aynı şekilde imagecolorallocate fonksiyonu ile belirlenmiş renktir.

Buraya kadar olan fonksiyonlarla çok basit bir resim oluşturabilirsiniz. Şimdi oluşturacağımız resmi görme zamanı. Resmi görmek için imagepng() fonksiyonu kullanılır. Bu fonksiyon ile resmi ister tarayıcıya gönderebilir isterseniz dosya olarak kaydedebiliriz. Bu fonksiyon resim tarayıcıya gönderilmek istenirse

imagepng($resim);

şeklinde kullanılır. Dosya olarak kaydedilmek istenirse

imagepng($resim ,$dosya);

şeklinde kullanılır. $dosya kaydedilecek resmin adıdır.

PHP ile resim işleme yazı dizimizin sonraki yazısını da okuyabilirsiniz.

Bir önceki yazımız olan PHP ile Çoklu Dil Desteği başlıklı makalemizde PHP Dersleri, PHP il Farklı Dil Ekleme ve PHP ile Sitemize Çoklu Dil Desteği hakkında bilgiler verilmektedir.

About This Author

Uzun yıllardır yazılım ile uğraşıyorum. PHP ile başladığım yazılım hayatıma şu an PHP'nin yanında Swift ve Python ile devam ediyorum. Bu güne kadar bir çok proje geliştirdim ve yeni projeler geliştirmeye de devam ediyorum. Bu sitede yazılımseverlere faydalı bilgiler vermeye, yazılım geliştirmeye, öğrendiklerimi paylaşmaya, yeni başlayanlara yol göstermeye ve onlara yardımcı olmaya çalışıyorum.

Post A Reply