Resim İşleme Kütüphanesi


    × Bunları biliyor muydunuz?
"(ZN >= 5.6) Sürümü itibari ile View:: kütüphanesi parametresiz kullanımda tuttuğu değeri döndürmektedir."


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 dağıtımları için kurulum gerekmez.

↓ composer require znframework/package-image

 

 

# Yöntemler


Thumb::create(string $path = NULL) : string
Thumb::path(string $file) : this
Thumb::quality(int $quality) : this
Thumb::crop(int $x, int $y) : this
Thumb::size(int $width, int $height) : this
Thumb::resize(int $width, int $height) : this
Thumb::prosize(int $width, int $height) : this
Thumb::watermark(string $file, string $align = 'topleft', int $margin = 0) : this
Thumb::callGDMethod(...$parameters) : this
Thumb::refresh() : this
Thumb::background(int $width, int $height, string $color = 'white', string $align = 'center') : this
Thumb::clean(string $path, bool $origin = false)

 

 

# Create


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


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


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


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


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


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


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


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

Parametreler
string $file Genişlik.
string $align = 'topleft'
Üste gelecek resmin konumu
topLeft, topCenter, topRight, middleLeft, center, middleRight, bottomLeft, bottomCenter, bottomRight 
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


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

Parametreler
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


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
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 [6.0.2][2019-09-09]


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

int $width Arkaplanın genişliği. Bu değer ilgili resmin genişliğinin kaç birim olması gerektiğine göre ayarlanır.
int $height Arkaplanın yüksekliği. Bu değer yeniden boyutlandırılması istenilen yükseklik değerine göre ayarlanır.
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.
string $align = 'center'
Arkaplan üzerinde yer alacak resmin hangi konumu. 
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 [6.0.1][2019-08-28]


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

string $path Resmin yolu.
bool $origin = false
Orijanl resim de silinsin mi?

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);