Image Manipulation Kütüphanesi

Image Manipulation kütüphanesi, imaj dosyaları üzerinde düzenleme yapmayı kolaylaştıran bir dizi araç içermektedir.

  1. Yerel Sunucudan İmaj Yükleme » load()
  2. Uzakt Sunucudan İmaj Yükleme » loadUrl()
  3. Boş İmaj Oluşturma » createEmptyImage()
  4. Arka Plan Rengini Belirleme » setBgColor()
  5. Kırpma » setCropCoordinates()
  6. Yeniden Boyutlandırma » resize()
  7. Yansıtma (Yatay / Dikey) » flip()
  8. Döndürme » rotate()
  9. İmaj Üzerine Yazı Yazma » text()
  10. İki İmajı Birleştirme » merge()
  11. Görüntü Kalitesini Belirleme » setQuality()
  12. Yeni İmajı Kaydetme » save()
  13. 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();