Resim İşleme Kütüphanesi
"(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
# 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.
string $path = NULL | Resmin yolunu belirtmek için kullanılır. Thumb::path() yönteminin alternatifidir. |
return string |
echo Thumb::path(FILES_DIR . 'images/wallpaper.jpg')
->crop(100, 200)->resize(300, 200)
->create();
$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.
string $path | Resmin yolunu belirtmek için kullanılır. |
return this |
echo Thumb::path(FILES_DIR . 'images/wallpaper.jpg')
->crop(100, 200)->resize(300, 200)
->create();
# Quality
Yeni oluşturulan resmin kalitesini belirtmek için kullanılır. 0 - 100 arasında değer alır.
int $quality | Kalite miktarı. |
return this |
$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.
int $x | Yatay düzlemde kaçıncı pikselden başlanacağı. |
int $y | Dikey düzlemde kaçıncı pikselden başlanacağı. |
return this |
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.
int $width | Genişlik. |
int $height |
Yükseklik. |
return this |
$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.
int $width | Genişlik. |
int $height |
Yükseklik. |
return this |
$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.
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 |
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.
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 |
$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.
mixed ...$parameters | Parameterler. |
return this |
$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.
return this |
$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);
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);
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');
thumbs/ dizininde yer alan resimlerle beraber orijinal resmin kendisinide silmek için 2. parametrenin true olarak ayarlanması gerekmektedir.
Thumb::clean('wallpaper1.jpg', true);