Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

PHP Thumbnailer Sınıfı v2.0

2 min read

Genelde yazılarımın altyapısını tecrübelerim oluşturuyor. Projelerimde kullandığım teknikler, sınıflar gibi şeyler güzel birer makale konusu olabiliyor. Bu çizgide size tanıtmak istediğim bir sınıf var; PHP Thumbnailer Sınıfı v2.0. Dünyada bir çok web programcısı tarafından takdir edilen bu sınıf, bir WordPress eklentisi olan NextGEN Galeri’de de kullanılmakta. Fotoğrafları düzenlemek (yeniden boyutlandırma, döndürme, kesme, yansıma ekleme vb.) için ideal bir sınıf diyebilirim.

Özellikleri

PHP Thumbnailer Sınıfı v2.0 ile aşağıdaki işlemleri kolayca gerçekleştirebilirsiniz.

  • Resmi tercihe bağlı bir şekilde kırpabilirsiniz. Örneğin tam ortasından istediğiniz boyutlarda bir kareyi kesip kullanabilirsiniz.
  • Resmi istediğiniz yöne doğru 90 derece döndürebilirsiniz.
  • Resimlerinize yansıma ekleyebilirsiniz.
  • Yüzdeye göre veya belirteceğiniz genişlik ve yüksekliğe göre kalitesi bozulmadan resmin boyutunu değiştirebilirsiniz.
  • Resmi kalitesini yüzde (0-100%) oranında değiştirebilirsiniz.
  • Bir anda birden çok resmi sınıfı veya resimleri yeniden çağırmadan düzenleyebilirsiniz.
  • Resimlerin dinamik olarak (İngilizce’de “on the fly” tabiri kullanılıyor) oluşturulmasını sağlayabilirsiniz. Yani ziyaretçilerinize küçültülerek görünür fakat aslında küçültülmüş yeni bir dosya yoktur.

Yukarıda bu sınıfın özelliklerinden sadece birkaçını saydım. Böyle gelişmiş bir sınıfın kullanımının oldukça karmaşık olduğunu düşünebilirsiniz fakat aksine gerçekten çok kolay.

Kullanımı

Resmi Çağırmak
Aşağıdaki gibi basit bir kodla resmi çağırıp sınıfa dahil ederek uygulamamıza başlayabiliyoruz.
[php]<?php
include_once(‘thumbnail.inc.php’);
$thumb = new Thumbnail(‘galeri/kisisel/resim.jpg’);
?>[/php]
Yeniden Boyutlandırma
Resmi dilerseniz direk piksel cinsinden genişlik ve yüksekliğini belirterek yeniden boyutlandırabilirsiniz veya yüzde (%) belirterek belirli bir oranda boyutlandırma yapabilirsiniz.
[php]<?php
//Piksel belirterek boyutlandırma (genişlik,yükseklik)
$thumb->resize(250,250);

//Resmin boyutunu %50 oranında düşürme
$thumb->resizePercent(50);
?>[/php]
Resimden Parça Almak (Kırpma/Kesme)
Bu sınıf ile dilersek resmin tam ortasından belirteceğimiz oranda bir kesit alabiliriz ya da resmin dilediğimiz bir yerini ölçüsünü belirterek kesip alabiliriz.
[php]<?php
//Resmin tam ortasından 100×100 piksellik bir bölümü alır.
$thumb->cropFromCenter(100);

//Resmin belirteceğiniz konumundan kesit almanızı sağlar. (başlangıç (x), başlangıç (y), genişlik, yükseklik)
$thumb->crop(0,0,100,50);
?>[/php]
Resmi Döndürmek
Resmi saat yönünde (CW) veya saatin tersi yönünde (CCW) 90 derece döndürebilirsiniz.
[php]<?php
//Saat yönünde çevirme
$thumb->rotateImage(); //veya $thumb->rotateImage(‘CW’);
//Saatin tersi yönünde çevirme
$thumb->rotateImage(‘CCW’);
?>[/php]
Yansıma Eklemek
Resimlere createReflection() fonksiyonu ile yansıma eklebilir. Bu fonksiyonun alabileceği değerler;
createReflection($yuzde,$yansima,$seffaflik,$cizgi,$cizgiRengi);

  • $yuzde: Yüzde olarak yansıma miktarı
  • $yansima: Resmin yüzde olarak yansıma yapılacak yüksekliği
  • $seffaflik: Resmin yüzde olarak ne kadar şeffaf olacağı
  • $cizgi: Orjinal resmin çevresine bir çizgi çizilip çizilmeyeceği (true, false)
  • $cizgiRengi: Çizgi çizilecekse bunun rengi

Bu kodu örnek olarak şu şekilde kullanabilirsiniz.
[php]<?php
$thumb->createReflection(40,40,80,true,’#a4a4a4′);
?>[/php]

Erişim Bilgileri

Yukarıdaki kodların kullanıldığı ve resmin üzerinde yaptığı etkilerin gösterildiği test sayfasına şuradan ulaşabilirsiniz.

Sınıfı indirebileceğiniz ve kullanımını görebileceğiniz orjinal sayfası PHP Thumbnailer Class v2.0

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer