Resim İşleme Kütüphanesi


    × Bunları biliyor muydunuz?
"ZN Framework'te tema entegrasyonu sürükle bırak kadar basit bir şekilde gerçekleştirilebilmektedir."


Resimler üzerinde kesme, kırpma, küçültme gibi tek boyutlu işlem gerçekleştirmek için oluşturulmuştur. Her bir işlem resmin yeni bir kopyasını oluşturur. Bu nedenle bir resme her seferinde sadece bir işlem uygulanabilir. GD:: kütüphanesinden farklı olarak Thumb:: kütüphanesi resmi çekerken üzerinde işlem yapar ve yol bilgisini döndürür. Ve resim işleme işlemini aynı ayarlarla sadece bir kereye mahsus gerçekleştirir. Böylece veritabanından resim bilgilerini çekerken bu kütüphaneyi döngü içerisinde kullanabilirsiniz. Özellikle çekilen resmin boyutunun düşürülmesi gereken durumlarda oldukça kullanışlıdır.

 

 

# Kurulum


ZN SE ve ZN CE dağıtımları için terminal kurulum komutu.

↓ composer require znframework/package-image

 

 

# Yöntemler


3.0.0 String create(String $path = NULL)
3.0.0 This path(String $file)
3.0.0 This quality(Int $quality)
3.0.0 This crop(Int $x, Int $y)
3.0.0 This size(Int $width, Int $height)
3.0.0 This resize(Int $width, Int $height)
3.0.0 This prosize(Int $width, Int $height)
5.7.8 This watermark(String $file, String $align = 'topleft', Int $margin = 0)
5.7.8 This callGDMethod(...$parameters)
5.7.8 This refresh(Void)
6.0.17 This background(Int $width, Int $height, String $color = 'white', String $align = 'center')
6.0.18 Void clean(String $path, Bool $origin = false)

 

 

# Create (ZN >= 3.0.0)


Yöntemlerle yapılandırılan resmin boyutlandırma işlemini tamamlamak için kullanılır. Bu yöntemden kullanımından sonra resmin orjinalini korumak sureti ile aynı dizin içine thumbs/ dizini oluşturarak yeni oluşturulan resimler içerisine eklenir.

Parametreler
String $path = NULL Resmin yolunu belirtmek için kullanılır. Thumb::path() yönteminin alternatifidir.
Return String
Kullanımı
echo Thumb::path(FILES_DIR . 'images/wallpaper.jpg') 
          ->crop(100, 200)->resize(300, 200) 
          ->create();
https://localhost/develop/Projects/example/Resources/Files/images/thumbs/wallpaper-100x200px-300x200size.jpg
$thumb = Thumb::crop(100, 200)->resize(300, 200)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

 

 

# Path (ZN >= 3.0.0)


Boyutlandırma işleminin hangi resim dosyası üzerinde yapılacağı belirtilir.

Parametreler
String $path Resmin yolunu belirtmek için kullanılır.
Return This
Kullanımı
echo Thumb::path(FILES_DIR . 'images/wallpaper.jpg')
          ->crop(100, 200)->resize(300, 200)
          ->create();
https://localhost/develop/Projects/example/Resources/Files/images/thumbs/wallpaper-100x200px-300x200size.jpg

 

 

# Quality (ZN >= 3.0.0)


Yeni oluşturulan resmin kalitesini belirtmek için kullanılır. 0 - 100 arasında değer alır.

Parametreler
Int $quality Kalite miktarı.
Return This
Kullanımı
$thumbPath = Thumb::path(FILES_DIR . 'images/wallpaper.jpg')
                  ->quality(80)
                  ->crop(100, 200)->resize(300, 200)
                  ->create();

echo Html::image($thumbPath);
$thumb = Thumb::quality(2)
              ->crop(600, 350)->size(300, 300)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

 

 

# Crop (ZN >= 3.0.0)


Boyutlandırma işleminin orjinal resimde kaçıncı piksellerden itibaren başlanacağını belirtmek için kullanılır.

Parametreler
Int $x Yatay düzlemde kaçıncı pikselden başlanacağı.
Int $y Dikey düzlemde kaçıncı pikselden başlanacağı.
Return This
Kullanımı
echo Thumb::path(FILES_DIR . 'images/wallpaper.jpg') 
          ->quality(80)
          ->crop(100, 200)->resize(300, 200) 
          ->create();

 

 

# Size (ZN >= 3.0.0)


Kırpılan resmin genişlik ve yükseklik değerini ayarlamak için kullanılır.

Parametreler
Int $width Genişlik.
Int $height Yükseklik.
Return This
Kullanımı
$thumb = Thumb::quality(80)
              ->crop(600, 300)->size(300, 300)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

 

 

# Resize (ZN >= 3.0.0)


Resmi yeniden boyutlandırma genişliğini ve yüksekliğini ayarlamak için kullanılır.

Parametreler
Int $width Genişlik.
Int $height Yükseklik.
Return This
Kullanımı
$thumb = Thumb::quality(80)
              ->resize(200, 400)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

 

 

# Prosize (ZN >= 3.0.0)


Resmi orantılı olarak boyutlandırmak için kullanılır.

Parametreler
Int $width Genişlik değerine göre orantılamak için sadece 1. parametreyi kullanın.
Int $height Yükseklik değerine göre orantılamak için 1. parametreyi 0, 2. parametreyi orantılamak istediğiniz değer olarak ayarlayın.
Return This
Kullanımı

Yükseklik değerine göre orantılamak için 1. parametre 0 ayarlanır.

$thumb = Thumb::quality(80)
              ->crop(100, 200)->prosize(0, 200)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

Genişlik değerine göre orantılamak için sadece 1. parametreyi kullanın.

$thumb = Thumb::quality(80)
              ->crop(100, 200)->prosize(200)
              ->create(FILES_DIR . 'images/wallpaper.jpg');

echo Html::image($thumb);

 

 

# Watermark (ZN >= 5.7.8)


Resim üzerine başka bir resmi yerleştirmek için kullanılır.

Parametreler
5.7.8 String $file Genişlik.
5.7.8 String $align = 'topleft' Üste gelecek resmin konumu
Seçenekler topLeft, topCenter, topRight
middleLeft, center, middleRight
bottomLeft, bottomCenter, bottomRight 
5.7.8 Int $margin = 0 Kenar boşluğu.
Return This
Kullanımı
$thumb = Thumb::prosize(0, 200)
              ->watermark(FILES_DIR . 'watermark.jpg', 'center')
              ->create(FILES_DIR . 'wallpaper1.jpg');

echo Html::image($thumb);

Üsteki resmin görünüm oranını ayarlamak için Thumb::percent() yöntemini kullanabilirsiniz.

$thumb = Thumb::prosize(0, 200)
              ->percent(50)->watermark(FILES_DIR . 'watermark.jpg', 'center')
              ->create(FILES_DIR . 'wallpaper1.jpg');

echo Html::image($thumb);

Thumb::percent() kullanımında bilinmesi gereken Thumb::watermark() yönteminden önce devreye sokulması gerektiğidir.

 

 

# CallGDMethod (ZN >= 5.7.8)


GD:: kütüphanesinin yöntemleri artık bu kütüphane ile birlikte kullanılabilir.

Parametreler
5.7.8 Mixed ...$parameters Parameterler.
Return This
Kullanımı
$thumb = Thumb::prosize(0, 200)
              ->percent(30)->target('center')->mix('watermark.jpg')
              ->convolution([ [2, 0, 0], [0, -1, 0], [0, 0, -1] ], 1, 127)
              ->create('wallpaper1.jpg');

echo Html::image($thumb);

 

 

# Refresh (ZN >= 5.7.8)


Resim oluşturma işlemini yenilemek için kullanılır. Özellikle daha önce thumb dosyası oluşturulmuş resmin yeni özellikler eklenmiş bir şekilde tekrar thumb dosyasının oluşturulması gereken durumlarda kullanılır.

Parametreler
Void
Return This
Kullanımı
$thumb = Thumb::prosize(0, 200)
              ->refresh()
              ->negate()
              ->grayscale()
              ->percent(80)->target('middleLeft')->mix('watermark.jpg')
              ->convolution([ [2, 0, 0], [0, -1, 0], [0, 0, -1] ], 1, 127)  
              ->create('wallpaper1.jpg');

echo Html::image($thumb);

 

 

# Background (ZN >= 6.0.17)


Bu yöntem Thumb::prosize() yöntemi ile beraber kullanılır. Yeniden boyutlandırılmış resmin arkaplanına renk vermek için kullanılır. Özellikle ilan ve ürün resimlerinde resmin yüksekliği sabit tutulmak şartı ile genişliğinin sabit yüksekliğe oranla küçültülmesinden sonra resmin ortalanarak kenarlarının beyaza dönüştürülmesi için kullanılabilir.

Parametreler

6.0.17 Int $width Arkaplanın genişliği. Bu değer ilgili resmin genişliğinin kaç birim olması gerektiğine göre ayarlanır.
6.0.17 Int $height Arkaplanın yüksekliği. Bu değer yeniden boyutlandırılması istenilen yükseklik değerine göre ayarlanır.
6.0.17 String $color = 'white' Arka plan rengi. Bu parametreye ister renk adı isternirse '255|255|255' alfa içerecekse '255|255|255|255' türünden değer verilebilir.
6.0.17 String $align = 'center' Arkaplan üzerinde yer alacak resmin hangi konumu. 
Seçenekler
topLeft, topCenter, topRight
middleLeft, center, middleRight
bottomLeft, bottomCenter, bottomRight
Return This

Kullanımı

$thumb = Thumb::prosize(0, 200)
              ->background(400, 200)
              ->create('wallpaper1.jpg');

echo Html::image($thumb);
Farklı Renk Kullanımı

3. parametre belirtilmez ise ön tanımlı olarak beyaz kabul edilir. Bu seçeneği değiştirerek arkaplan rengini değiştirebilirsiniz.

$thumb = Thumb::prosize(0, 200)
              ->background(400, 200, 'purple')
              ->create('wallpaper1.jpg');

echo Html::image($thumb);
$thumb = Thumb::prosize(0, 200)
              ->background(400, 200, 'transparent')
              ->create('wallpaper1.jpg');

echo Html::image($thumb);
$thumb = Thumb::prosize(0, 200)
              ->background(400, 200, '232|175|211')
              ->create('wallpaper1.jpg');

echo Html::image($thumb);
Hizalama

4. parametre belirtilmez ise ön tanımlı olarak orta kabul edilir. Bu seçeneği değiştirerek arkaplan üzerindeki resmin konumunu değiştirebilirsiniz.

$thumb = Thumb::prosize(0, 200)
              ->background(400, 200, 'white', 'middleLeft')
              ->create('wallpaper1.jpg');

echo Html::image($thumb);

 

 

# Clean (ZN >= 6.0.18)


Bu yöntem oluşturulmuş orijnai resme ait diğer thumbs/ dizini içinde yer alan yeniden işlenmiş resimleri silmek için kullanılır.

Parametreler

6.0.18 String $path Resmin yolu.
6.0.18 Bool $origin = false Orijanl resim de silinsin mi?
Return Void

Kullanımı

Thumb::clean('wallpaper1.jpg');
Orijinalini Silmek

thumbs/ dizininde yer alan resimlerle beraber orijinal resmin kendisinide silmek için 2. parametrenin true olarak ayarlanması gerekmektedir.

Thumb::clean('wallpaper1.jpg', true);