Yüklenen fotoğraf tek renkten oluşan boş bir resim mi?

Standard

Selam herkese,

Bugün sizlerle sitemize yüklenen fotoğrafların boş imaj olup olmadığını anlamanının yolunu anlatacağım.

Öncelikli olarak bu işi yapmak için dosya uzantınıza göre imagecreatefrom… diyerek oluşturduğunuz resim dosyasına imagecolorstotal dediğiniz zaman size jpg değilse başarılı olup jpg formatındaki dosyalarda 0 döndüğünü görerek çıldırmanız ile başlayacak süreç.

Bu adım da php nin kendi klavuzuna bakacaksınız ve açıklama bulamayıp iyice sinirleneceksiniz ve sonrasında bu sayfaya geleceksiniz, doğru yerdesiniz 🙂

Öncelikle neden böyle oluyor bu diye düşünenlerin kafasındaki soruya yanıt vermek istiyorum;

imagecreatefromjpeg dediğiniz zaman size truecolor bir resim nesnesi oluşturur ve imagecolorstotal fonksiyonunu çağırdığınız zaman hep size 0 döndürür. Burada resource umuzda değişiklik yapmamız gerekecek. Resource da terminolojide dilimize kaynak diye geçmekte galiba ama bana garip geliyor, resource olarak devam edeceğim.. Özetle truecolor resource umuzu pallete resource a dönüştürmemiz gerekecek.

//boş imaj
$resim1 = imagecreatefromjpeg('test_bos.jpg');
imagetruecolortopalette($resim1, false, 256); //resource değiştirelim
$renk1 = imagecolorstotal($resim1); //renk adetini aldık

//dolu imaj
$resim2 = imagecreatefromjpeg('test_dolu.jpg');
imagetruecolortopalette($resim2, false, 256);
$renk2 = imagecolorstotal($resim2);

echo $renk1."<br>".$renk2;

Burada ilk boş beyaz imajımızın 1 döndüğünü ikinci imajımızın 256 renk döndüğünü göreceksiniz..

işlem bu kadar basit görüldüğü üzere, kolay gelsin…

2 thoughts on “Yüklenen fotoğraf tek renkten oluşan boş bir resim mi?

  1. Webde bulunan bir fotoğrafın exif ve geocode verilerini gösteren bir php scripti yazılabilir mi?
    Bilinen siteler sadece yükleme yapılan resimlerin bilgilerini gösteriyor.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir