Resim İşleme Kütüphanesi
"Görünümleri 'Views/controllerName/methodName.php' formunda tanımlayarak kontrolcüler tarafından otomatik yüklenmesini sağlayabilirsiniz."
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
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.2.1[2019-09-09] | This | background(Int $width, Int $height, String $color = 'white', String $align = 'center') |
6.0.1.1[2019-08-28] | 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.
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 (ZN >= 3.0.0)
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 (ZN >= 3.0.0)
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 (ZN >= 3.0.0)
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 (ZN >= 3.0.0)
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 (ZN >= 3.0.0)
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 (ZN >= 3.0.0)
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 (ZN >= 5.7.8)
Resim üzerine başka bir resmi yerleştirmek için kullanılır.
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 |
$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.
5.7.8 | 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 (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.
Void | |||
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 (Paket[6.0.2.1][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
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);
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 (Paket[6.0.1.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
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');
thumbs/ dizininde yer alan resimlerle beraber orijinal resmin kendisinide silmek için 2. parametrenin true olarak ayarlanması gerekmektedir.
Thumb::clean('wallpaper1.jpg', true);