Image Manipulation Kütüphanesi
Image Manipulation kütüphanesi, imaj dosyaları üzerinde düzenleme yapmayı kolaylaştıran bir dizi araç içermektedir.
- Yerel Sunucudan İmaj Yükleme » load()
- Uzakt Sunucudan İmaj Yükleme » loadUrl()
- Boş İmaj Oluşturma » createEmptyImage()
- Arka Plan Rengini Belirleme » setBgColor()
- Kırpma » setCropCoordinates()
- Yeniden Boyutlandırma » resize()
- Yansıtma (Yatay / Dikey) » flip()
- Döndürme » rotate()
- İmaj Üzerine Yazı Yazma » text()
- İki İmajı Birleştirme » merge()
- Görüntü Kalitesini Belirleme » setQuality()
- Yeni İmajı Kaydetme » save()
- Yeni İmajı Görüntüleme » show()
Yerel Sunucudan İmaj Yükleme
Düzenleme yapılacak imaj dosyası yerel sunucuda ise, erişmek için load() methodu kullanılır. Dosyanın bulunduğu dizin yolu parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $file | String | Dosya yolu |
Image::load('images/image.jpg');
Uzak Sunucudan İmaj Yükleme
Düzenleme yapılacak imaj dosyası uzak sunucuda ise, erişmek için loadUrl() methodu kullanılır. Dosyanın bulunduğu url parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $url | String | Dosya URL'i |
Image::loadUrl('http://somewhere.com/images/image.jpg');
Boş İmaj Oluşturma
Boş bir imaj oluşturmak için createEmptyImage() methodu kullanılır. İmajın genişliği, yüksekliği, formatı ve PNG ise transparanlığını belirten alpha değeri parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $width | Integer | İmaj genişliği |
| $height | Integer | İmaj yüksekliği |
| $type | String | İmaj formatı |
| $alpha | Integer | Transparanlık oranı ( Format PNG ise verilir. Varsayılan false. ) |
// 200x200 ebatında beyaz arka planlı JPG imaj oluşturur ve ekrana basar
Image::createEmptyImage(200, 200, 'JPG')->show();
// 200x200 ebatında, transparan bir PNG imaj oluşturur ve ekrana basar
Image::createEmptyImage(200, 200, 'PNG', 100)->show();
Arka Plan Rengini Belirleme
Düzenlenecek ya da yeni oluşturulacak imajın arka plan rengini belirlemek için setBgColor() methodu kullanılır. RGB renk kodlarını içeren bir array ya da Hex. renk kodunu içeren bir string parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $colors | Array | String | RGB / Hex. renk kodları |
// 200x200 ebatında, RGB (255, 73, 84) arka plan renginde bir imaj yaratıp, example.png olarak kaydeder.
Image::setBgColor([255, 73, 84])->createEmptyImage(200, 200)->save('img/example.png');
// 200x200 ebatında, Hex. #fefefe arka plan renginde bir imaj yaratıp, example.png olarak kaydeder.
Image::setBgColor('#fefefe')->createEmptyImage(200, 200)->save('img/example.png');
Kırpma Koordinatlarını Belirleme
Bir imajı belirli ebatlarda kırpmak için setCropCoordinates() methodu kullanılır. Kırpılmak istenen x ve y koordinatları parametre olarak verilir. Bu tanımlama yapıldıktan sonra, resize() methoduna üçüncü parametre olarak "crop" değeri verilir ve kırpma işlemi gerçekleştirilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $x | Integer | X Koordinatı |
| $y | Integer | Y Koordinatı |
// Belirlenen koordinatlar ile kırpma işlemi gerçekleştirilir ve ekrana basılır
Image::load('img/image.png')
->setCropCoordinates(-100, -80)
->resize(200, 300, 'crop')
->show();
Yeniden Boyutlandırma
Bir imajı yeniden boyutlandırmak için resize() methodu kullanılır. Yeni genişlik ve yükselik değerleri ile yeniden boyutlandırma yöntemi parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $new_width | Integer | Yeni genişlik |
| $new_height | Integer | Yeni yükseklik |
| $method | String | Boyutlandırma methodu. ( fill | crop ) |
Boyutlandırma methodu olarak "crop" ya da "fill" seçeneklerinden biri kullanılır.
# crop
Crop methodu, belirlenen yükseklik ve genişlik değerlerinin dışında kalan alanları kırparak yeniden boyutlandırma yapar.
# fill
Fill methodu, belirlenen yükseklik ve genişlik değerleri ile yeniden boyutlandırma sonucunda artan boş yerleri belirlenen arka plan rengi ile doldurur.
// "image.png", 200x300 ebatında olacak şekilde kırpılarak,
// "image_crop.png" adı ile kaydediliyor.
Image::load('img/image.png')->resize(200, 300, 'crop')->save('img/image_crop.png');
// "image.png", 200x300 ebatında yeniden boyutlandırılıyor.
// Artan alanlar varsayılan renk (beyaz) ile dolduruluyor. ve "image_fill.png" adı ile kaydediliyor.
Image::load('img/image.png')->resize(200, 300, 'fill')->save('img/image_fill.png');
// "image.png", 200x300 ebatında yeniden boyutlandırılarak "image_simple.png" adı ile kaydediliyor.
Image::load('img/image.png')->resize(200, 300)->save('img/image_simple.png');
// "image.png", genişliği %20, yüksekliği %40 oranında küçültülüyor.
// Artan alanlar varsayılan renk (beyaz) ile dolduruluyor ve "image_percentage.png" adı ile kaydediliyor.
Image::load('img/image.png')->rezize('20%', '40%', 'fill')->save('img/image_percentage.png');
// "image.png", genişliği 200px ve yüksekliği de aynı oranda olacak şekilde yeniden boyutlandırılıyor.
// "image_new.png" adı ile kaydediliyor.
Image::load('img/image.png')->resize(200)->save('img/image_new.png');
Yansıtma (Yatay / Dikey)
Bir imajı yatay ya da dikey olarak yansıtmak için flip() methodu kullanılır. Yansıtma yönü parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $direction | String | Yansıtma yönü ( yatay: "horizontal", dikey: "vertical" ) |
// Imajı dikey olarak yansıtıp ekrana basar.
Image::load('img/image.png')->flip('vertical')->show();
// Imajı yatay olarak yansıtıp ekrana basar.
Image::load('img/image.png')->flip('horizontal')->show();
Döndürme
Bir imajı belirlenen derecede döndürmek için rotate() methodu kullanılır. Döndürme derecesi parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $degree | Integer | Döndürme derecesi |
// Imajı 90 derece döndürür ve ekrana basar
Image::load('img/image.png')->rotate(90)->show();
İmaj Üzerine Yazı Yazma
Bir imaj üzerine yazı yazmak için text() methodu kullanılır. Yazı metnini içeren bir string ve Yazı rengi, arka plan rengi, yazı boyutu, yazı konumu bilgilerini içeren bir array değişkeni parametre olarak alır.
Imaj üzerine yazılacak yazının özelliklerini içeren array değişkene ait anahtar değerler aşağıdaki gibidir;
color : Yazı rengini belirtir. Hex. renk kodu verilir.
background_color : Arka plan rengini belirtir. Hex. renk kodu verilir.
size : Yazı boyutunu belirtir.
x : Yazının X ekseni üzerindeki konumunu belirtir. ( left, right, center )
y : Yazının Y ekseni üzerindeki konumunu belirtir. ( top, bottom, middle )
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $text | String | Yazı metni |
| $options | Array | Yazı özellikleri |
$options = [
'color' => '#000',
'background_color' => '#ffff00',
'size' => 4,
'x' => 'right',
'y' => 'top'
];
Image::load('img/image.png')->text('Örnek text metni', $options)->show();
İki İmajı Birleştirme
Bir imajı başka bir imaj ile birleştirmek için merge() methodu kullanılır. Birleştirilecek imajın yolu, birleştirme konumu ve transparanlık derecesi parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $image | String | Birleştirilecek imaj |
| $Coordinates | Array | Birleştirme konumu> ( [$x, $y] ) |
// "image_1.png" nin sağ alt köşesine, "image_2.png" yi konumlandırır.
Image::load('img/image_1.png')
->merge('img/image_2.png', ['right', 'bottom'], 60)
->show();
Görüntü Kalitesini Belirleme
Düzenlenen imajın görüntü kalitesini belirlemek için setQuality() methodu kullanılır. 1-100 arası bir değer alır.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $quality | Integer | Kalite oranı |
// "image.png" imajını %100 kalitede ekrana basar
Image::load('img/image.png')->setQuality(100)->show();
Yeni İmajı Kaydetme
Düzenlenen imajı yeni bir imaj dosyası olarak kaydetmek için save() methodu kullanılır. İmajın kaydedileceği dizin parametre olarak verilir.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $path | String | Kayıt dizini |
// "image.png" imajını 200px genişliğine küçültüp "image_thumb.png" olarak kaydeder.
Image::load('img/image.png')->resize(200)->save('img/image_thumb.png');
Yeni İmajı Görüntüleme
Düzenlenen imajı ekranda görüntülemek için show() methodu kullanılır.
// "image.png" imajını 200px genişliğine küçültüp ekrana basar.
Image::load('img/image.png')->resize(200)->show();