Görsellerle Çalışma
*******************
.[perex]
[api:Nette\Utils\Image] sınıfı, görsellerle çalışmayı kolaylaştırır: boyutlandırma, kırpma, keskinleştirme, çizim ya da birden çok görseli birleştirme gibi.
PHP'nin görsel işleme için geniş bir fonksiyon kümesi vardır. Ancak API'leri pek kullanıcı dostu değildir. Nette Framework, keyifli bir API ortaya koymasaydı Nette Framework olmazdı.
Kurulum:
```shell
composer require nette/utils
```
Aşağıdaki örnekler, şu sınıf takma adlarının tanımlandığını varsayar:
```php
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
```
Görsel Oluşturma
================
Örneğin 100×200 boyutlarında yeni bir true color görsel oluşturun:
```php
$image = Image::fromBlank(100, 200);
```
İsteğe bağlı olarak arka plan rengini de belirtebilirsiniz (varsayılan siyahtır):
```php
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
```
Ya da bir görseli dosyadan yükleyin:
```php
$image = Image::fromFile('nette.jpg');
```
Görseli Kaydetme
================
Görsel bir dosyaya kaydedilebilir:
```php
$image->save('resampled.jpg');
```
Sıkıştırma kalitesini JPEG için 0-100 (varsayılan 85), WEBP için 0-100 (varsayılan 80), AVIF için 0-100 (varsayılan 30) ve PNG için 0-9 (varsayılan 9) aralığında belirtebilirsiniz:
```php
$image->save('resampled.jpg', 80); // JPEG, kalite %80
```
Biçim dosya uzantısından anlaşılmıyorsa bir [sabitle |#Biçimler] belirtilebilir:
```php
$image->save('resampled.tmp', null, ImageType::JPEG);
```
Görsel, diske kaydedilmek yerine bir değişkene yazılabilir:
```php
$data = $image->toString(ImageType::JPEG, 80); // JPEG, kalite %80
```
ya da uygun `Content-Type` HTTP header'ıyla doğrudan tarayıcıya gönderilebilir:
```php
// Content-Type: image/png header'ını gönderir
$image->send(ImageType::PNG);
```
Biçimler
========
Desteklenen biçimler JPEG, PNG, GIF, WebP, AVIF ve BMP'dir. Ancak PHP sürümünüzün de bunları desteklemesi gerekir; bunu [#isTypeSupported()] fonksiyonuyla doğrulayabilirsiniz. Animasyonlar desteklenmez.
Biçimler `ImageType::JPEG`, `ImageType::PNG`, `ImageType::GIF`, `ImageType::WEBP`, `ImageType::AVIF` ve `ImageType::BMP` sabitleriyle temsil edilir.
```php
$supported = Image::isTypeSupported(ImageType::JPEG);
```
Görselin biçimini yüklerken saptamanız mı gerekiyor? Metot onu ikinci parametrede döndürür:
```php
$image = Image::fromFile('nette.jpg', $type);
```
Görselin kendisini yüklemeden saptama `Image::detectTypeFromFile()` ile yapılır.
Boyutlandırma
=============
Yaygın işlemlerden biri görselin boyutunu değiştirmektir. Geçerli boyutları `getWidth()` ve `getHeight()` metotları döndürür.
Boyutlandırma için `resize()` metodu kullanılır. Görselin 500x300 pikseli aşmaması için orantılı boyutlandırma örneği (ya genişlik tam olarak 500px ya da yükseklik tam olarak 300px olur; diğer boyut en-boy oranını korumak için hesaplanır):
```php
$image->resize(500, 300);
```
Yalnızca bir boyut belirtilebilir, diğeri otomatik hesaplanır:
```php
$image->resize(500, null); // genişlik 500px, yükseklik otomatik hesaplanır
$image->resize(null, 300); // genişlik otomatik hesaplanır, yükseklik 300px
```
Her iki boyut da yüzde olarak belirtilebilir:
```php
$image->resize('75%', 300); // %75 × 300px
```
`resize()` davranışı aşağıdaki bayraklarla etkilenebilir. `Image::Stretch` dışındaki tüm bayraklar en-boy oranını korur.
|---------------------------------------------------------------------------------------
| Bayrak | Açıklama
|---------------------------------------------------------------------------------------
| `Image::OrSmaller` (varsayılan) | ortaya çıkan boyutlar istenen boyutlardan küçük ya da onlara eşit olur
| `Image::OrBigger` | hedef alanı doldurur (ve bir boyutta onu aşabilir)
| `Image::Cover` | hedef alanı doldurur ve taşan her şeyi kırpar
| `Image::ShrinkOnly` | yalnızca küçültür (küçük bir görselin gerilmesini önler)
| `Image::Stretch` | en-boy oranını korumaz
Bayraklar metoda üçüncü argüman olarak verilir:
```php
$image->resize(500, 300, Image::OrBigger);
```
Bayraklar birleştirilebilir:
```php
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
```
Boyutlardan birini (ya da her ikisini) negatif sayı olarak belirterek görseller dikey ya da yatay olarak çevrilebilir:
```php
$flipped = $image->resize(null, '-100%'); // dikey çevir
$flipped = $image->resize('-100%', '-100%'); // 180° döndür
$flipped = $image->resize(-125, 500); // boyutlandır ve yatay çevir
```
Bir görseli boyutlandırdıktan sonra, hafif bir keskinleştirmeyle görünümünü iyileştirebilirsiniz:
```php
$image->sharpen();
```
Kırpma
======
Kırpmak için `crop()` metodu kullanılır:
```php
$image->crop($left, $top, $width, $height);
```
`resize()` metodunda olduğu gibi tüm değerler yüzde olarak belirtilebilir. `$left` ve `$top` için yüzdeler, CSS'teki `background-position` özelliğine benzer şekilde kalan alandan hesaplanır:
```php
$image->crop('100%', '50%', '80%', '80%');
```
[* crop.svg *]
Görsel, örneğin siyah kenarlıkları kaldırmak için otomatik olarak da kırpılabilir:
```php
$image->cropAuto(IMG_CROP_BLACK);
```
`cropAuto()` metodu, `imagecropauto()` fonksiyonunun nesne yönelimli bir sargısıdır; ayrıntılar için [belgelerine bakın|https://www.php.net/manual/en/function.imagecropauto].
Renkler .{data-version:4.0.2}
=============================
`ImageColor::rgb()` metodu, bir rengi kırmızı, yeşil ve mavi (RGB) değerleriyle tanımlamanızı sağlar. İsteğe bağlı olarak, tıpkı CSS'teki gibi 0 (tümüyle saydam) ile 1 (tümüyle donuk) arasında bir saydamlık değeri de belirtebilirsiniz.
```php
$color = ImageColor::rgb(255, 0, 0); // Kırmızı
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Yarı saydam mavi
```
`ImageColor::hex()` metodu, bir rengi CSS'e benzer şekilde onaltılık biçimde tanımlamanızı sağlar. `#rgb`, `#rrggbb`, `#rgba` ve `#rrggbbaa` biçimlerini destekler:
```php
$color = ImageColor::hex("#F00"); // Kırmızı
$transparentGreen = ImageColor::hex("#00FF0080"); // Yarı saydam yeşil
```
Renkler `ellipse()`, `fill()` gibi başka metotlarda da kullanılabilir.
Çizim ve Düzenleme
==================
PHP'nin görsel işleme fonksiyonlarının tümü, nesne yönelimli bir biçime sarılmış olarak kullanımınızdadır; bkz. [#Metotlara Genel Bakış]:
```php
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
```
PHP'nin dikdörtgen çizen yerleşik fonksiyonları koordinat belirtme biçimi yüzünden pek kullanışlı olmadığından, `Image` sınıfı bunların yerine geçenler sunar: [#rectangleWH()] ve [#filledRectangleWH()].
Birden Çok Görseli Birleştirme
==============================
Geçerli görselin üzerine kolayca başka bir görsel yerleştirebilirsiniz:
```php
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// koordinatlar yüzde olarak da belirtilebilir
$blank->place($logo, '80%', '80%'); // sağ alt köşenin yakınına yerleştir
```
Yerleştirme sırasında alfa kanalına saygı gösterilir. Ayrıca yerleştirilen görselin saydamlığını da etkileyebilirsiniz (filigran oluşturarak):
```php
$blank->place($image, '80%', '80%', 25); // donukluk %25
```
Böyle bir API'yi kullanmak gerçekten keyifli!
Metotlara Genel Bakış
=====================
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image .[method]
-----------------------------------------------------------------------------------
Verilen boyutlarda yeni bir true color görsel oluşturur. Varsayılan renk siyahtır.
static fromFile(string $file, int &$detectedFormat=null, string &$warnings=null): Image .[method]
-------------------------------------------------------------------------------------------------
Bir görseli dosyadan okur ve [türünü |#Biçimler] `$detectedFormat` içinde döndürür. `$warnings` verirseniz, görsel çözücüsünün ölümcül olmayan uyarıları PHP uyarısı olarak yükseltilmek yerine bu değişkende saklanır; uyarı yoksa `null` kalır.
static fromString(string $s, int &$detectedFormat=null, string &$warnings=null): Image .[method]
------------------------------------------------------------------------------------------------
Bir görseli dizeden okur ve [türünü |#Biçimler] `$detectedFormat` içinde döndürür. `$warnings` verirseniz, görsel çözücüsünün ölümcül olmayan uyarıları PHP uyarısı olarak yükseltilmek yerine bu değişkende saklanır; uyarı yoksa `null` kalır.
static rgb(int $red, int $green, int $blue, int $transparency=0): array .[method][deprecated]
---------------------------------------------------------------------------------------------
Bu fonksiyonun yerini `ImageColor` sınıfı aldı, bkz. [#Renkler].
static typeToExtension(int $type): string .[method]
---------------------------------------------------
Verilen [tür |#Biçimler] için dosya uzantısını döndürür.
static typeToMimeType(int $type): string .[method]
--------------------------------------------------
Verilen [tür |#Biçimler] için MIME türünü döndürür.
static extensionToType(string $extension): int .[method]
--------------------------------------------------------
Dosya uzantısına göre görselin [türünü |#Biçimler] döndürür.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int .[method]
--------------------------------------------------------------------------------------------
Görsel dosyasının [türünü |#Biçimler] ve `$width` ile `$height` parametrelerinde boyutlarını da döndürür.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int .[method]
-------------------------------------------------------------------------------------------
Dizeden gelen görselin [türünü |#Biçimler] ve `$width` ile `$height` parametrelerinde boyutlarını da döndürür.
static isTypeSupported(int $type): bool .[method]
-------------------------------------------------
Verilen görsel [türünün |#Biçimler] desteklenip desteklenmediğini denetler.
static getSupportedTypes(): array .[method]{data-version:4.0.4}
---------------------------------------------------------------
Desteklenen görsel [türlerinden |#Biçimler] oluşan bir dizi döndürür.
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array .[method]
------------------------------------------------------------------------------------------------------------------------
Metni belirli bir yazı tipi ve boyutta çevreleyen dikdörtgenin boyutlarını hesaplar. `left`, `top`, `width`, `height` anahtarlarını içeren ilişkisel bir dizi döndürür. Metin sola taşan bir kerning ile başlıyorsa sol kenar boşluğu negatif olabilir.
affine(array $affine, ?array $clip=null): Image .[method]
---------------------------------------------------------
Kaynak görselin afin dönüşümünü, isteğe bağlı bir kırpma alanı kullanarak içeren bir görsel döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imageaffine]).
alphaBlending(bool $on): void .[method]
---------------------------------------
True color görsellerde iki farklı çizim kipine olanak tanır. Harmanlama kipinde, `setPixel()` gibi tüm çizim fonksiyonlarına verilen rengin alfa kanalı bileşeni, altta kalan rengin ne kadarının görünmesine izin verileceğini belirler. Sonuç olarak o noktadaki var olan rengi çizim rengiyle otomatik olarak harmanlar ve sonucu görselde saklar. Ortaya çıkan piksel donuktur. Harmanlamasız kipte çizim rengi, alfa kanalı bilgisiyle birlikte harfi harfine kopyalanır ve hedef pikselin yerini alır. Harmanlama kipi, palet görsellerinde çizim yaparken kullanılamaz. ([ayrıntı |https://www.php.net/manual/en/function.imagealphablending])
antialias(bool $on): void .[method]
-----------------------------------
Çizgiler ve tel kafes çokgenler için hızlı kenar yumuşatmalı çizim metotlarını etkinleştirir. Alfa bileşenlerini desteklemez. Doğrudan bir harmanlama işlemiyle çalışır. Yalnızca true color görsellerde çalışır.
Kenar yumuşatmalı ilkelleri saydam arka plan rengiyle kullanmak beklenmedik sonuçlar verebilir. Harmanlama yöntemi arka plan rengini diğer renkler gibi kullanır. Alfa bileşeni desteğinin olmaması, alfa tabanlı bir kenar yumuşatma yöntemine izin vermez. ([ayrıntı |https://www.php.net/manual/en/function.imageantialias])
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void .[method]
---------------------------------------------------------------------------------------------------------------------------
Verilen koordinatlarda merkezlenmiş bir daire yayı çizer. ([ayrıntı |https://www.php.net/manual/en/function.imagearc])
colorAllocate(int $red, int $green, int $blue): int .[method]
-------------------------------------------------------------
Verilen RGB bileşenlerinden oluşan rengi temsil eden bir renk tanımlayıcısı döndürür. Görselde kullanılacak her rengi oluşturmak için çağrılmalıdır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorallocate])
colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
------------------------------------------------------------------------------
`colorAllocate()` ile aynı şekilde davranır, ek olarak `$alpha` saydamlık parametresini alır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorallocatealpha])
colorAt(int $x, int $y): int .[method]
--------------------------------------
Görselde belirtilen konumdaki pikselin renk indeksini döndürür. Görsel true color ise, bu fonksiyon o pikselin RGB değerini tam sayı olarak döndürür. Ayrı kırmızı, yeşil ve mavi bileşen değerlerine erişmek için bit kaydırma ve maskeleme kullanın: ([ayrıntı |https://www.php.net/manual/en/function.imagecolorat])
colorClosest(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
Görselin paletinde, belirtilen RGB değerine "en yakın" rengin indeksini döndürür. İstenen renk ile paletteki her renk arasındaki "uzaklık", RGB değerleri üç boyutlu uzaydaki noktalarmış gibi hesaplanır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorclosest])
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
Görselin paletinde, belirtilen RGB değerine ve `$alpha` düzeyine "en yakın" rengin indeksini döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorclosestalpha])
colorClosestHWB(int $red, int $green, int $blue): int .[method]
---------------------------------------------------------------
Ton, beyazlık ve siyahlık bakımından verilen renge en yakın rengin indeksini alır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorclosesthwb])
colorDeallocate(int $color): void .[method]
-------------------------------------------
Daha önce `colorAllocate()` ya da `colorAllocateAlpha()` ile ayrılmış bir rengin ayrımını kaldırır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolordeallocate])
colorExact(int $red, int $green, int $blue): int .[method]
----------------------------------------------------------
Belirtilen rengin görsel paletindeki indeksini döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorexact])
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
---------------------------------------------------------------------------
Belirtilen renk + alfa değerinin görsel paletindeki indeksini döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorexactalpha])
colorMatch(Image $image2): void .[method]
-----------------------------------------
Bir görselin palet sürümündeki renkleri, true color sürümüne daha çok yaklaştırır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolormatch])
colorResolve(int $red, int $green, int $blue): int .[method]
------------------------------------------------------------
İstenen renk için ya tam rengin ya da olası en yakın alternatifin renk indeksini döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorresolve])
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int .[method]
-----------------------------------------------------------------------------
İstenen renk için ya tam rengin ya da olası en yakın alternatifin renk indeksini döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorresolvealpha])
colorSet(int $index, int $red, int $green, int $blue, int $alpha=0): void .[method]
-----------------------------------------------------------------------------------
Palette belirtilen indeksi belirtilen renge ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorset])
colorsForIndex(int $index): array .[method]
-------------------------------------------
Belirtilen indeksteki rengi alır. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorsforindex])
colorsTotal(): int .[method]
----------------------------
Görsel paletindeki renk sayısını döndürür. ([ayrıntı |https://www.php.net/manual/en/function.imagecolorstotal])
colorTransparent(?int $color=null): int .[method]
-------------------------------------------------
Görseldeki saydam rengi alır ya da ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagecolortransparent])
convolution(array $matrix, float $div, float $offset): void .[method]
---------------------------------------------------------------------
Verilen katsayı ve kaymayı kullanarak görsele bir evrişim matrisi uygular. ([ayrıntı |https://www.php.net/manual/en/function.imageconvolution])
.[note]
*Bundled GD extension* gerektirir, bu yüzden her yerde çalışmayabilir.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void .[method]
--------------------------------------------------------------------------------------------------
`$src` görselinin, `$srcX`, `$srcY` koordinatlarından başlayan `$srcW` genişliğinde ve `$srcH` yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça `$dstX` ve `$dstY` koordinatlarına kopyalanır. ([ayrıntı |https://www.php.net/manual/en/function.imagecopy])
copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void .[method]
---------------------------------------------------------------------------------------------------------------------
`$src` görselinin, `$srcX`, `$srcY` koordinatlarından başlayan `$srcW` genişliğinde ve `$srcH` yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça `$dstX` ve `$dstY` koordinatlarına kopyalanır. ([ayrıntı |https://www.php.net/manual/en/function.imagecopymerge])
copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void .[method]
-------------------------------------------------------------------------------------------------------------------------
`$src` görselinin, `$srcX`, `$srcY` koordinatlarından başlayan `$srcW` genişliğinde ve `$srcH` yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça `$dstX` ve `$dstY` koordinatlarına kopyalanır.
Bu fonksiyon `copyMerge()` ile aynıdır; tek farkı, birleştirirken kopyalama işleminden önce hedef pikselleri gri tonlamaya çevirerek kaynağın tonunu korumasıdır. ([ayrıntı |https://www.php.net/manual/en/function.imagecopymergegray])
copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void .[method]
---------------------------------------------------------------------------------------------------------------------------------
Bir görselin dikdörtgen bir parçasını başka bir görsele, piksel değerlerini yumuşakça ara değerleyerek kopyalar; böylece özellikle bir görseli küçültürken netlik büyük ölçüde korunur.
Başka bir deyişle `copyResampled()`, `$src` görselinden (`$srcX`,`$srcY`) konumundaki `$srcW` genişliğinde ve `$srcH` yüksekliğindeki dikdörtgen alanı alır ve onu görselde (`$dstX`,`$dstY`) konumundaki `$dstW` genişliğinde ve `$dstH` yüksekliğindeki dikdörtgen alana yerleştirir.
Kaynak ve hedefin koordinatları ile genişlik ve yükseklikleri farklıysa, görsel parçası uygun şekilde gerilir ya da küçültülür. Koordinatlar sol üst köşeye göredir. Bu fonksiyon aynı görsel içindeki bölgeleri kopyalamak için de kullanılabilir, ama bölgeler örtüşürse sonuçlar öngörülemez olur. ([ayrıntı |https://www.php.net/manual/en/function.imagecopyresampled])
copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void .[method]
-------------------------------------------------------------------------------------------------------------------------------
Bir görselin dikdörtgen bir parçasını başka bir görsele kopyalar. Başka bir deyişle `copyResized()`, `$src` görselinden (`$srcX`,`$srcY`) konumundaki `$srcW` genişliğinde ve `$srcH` yüksekliğindeki dikdörtgen alanı alır ve onu görselde (`$dstX`,`$dstY`) konumundaki `$dstW` genişliğinde ve `$dstH` yüksekliğindeki dikdörtgen alana yerleştirir.
Kaynak ve hedefin koordinatları ile genişlik ve yükseklikleri farklıysa, görsel parçası uygun şekilde gerilir ya da küçültülür. Koordinatlar sol üst köşeye göredir. Bu fonksiyon aynı görsel içindeki bölgeleri kopyalamak için de kullanılabilir, ama bölgeler örtüşürse sonuçlar öngörülemez olur. ([ayrıntı |https://www.php.net/manual/en/function.imagecopyresized])
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image .[method]
-----------------------------------------------------------------------------------------------
Görseli verilen dikdörtgen alana kırpar. Boyutlar piksel cinsinden tam sayı ya da yüzde biçiminde dize olarak (örneğin `'50%'`) belirtilebilir.
cropAuto(int $mode=0, float $threshold=.5, ?ImageColor $color=null): Image .[method]
------------------------------------------------------------------------------------
Görseli verilen `$mode` değerine göre otomatik olarak kırpar. ([ayrıntı |https://www.php.net/manual/en/function.imagecropauto])
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void .[method]
-----------------------------------------------------------------------------------------------
Belirtilen koordinatlarda merkezlenmiş bir elips çizer. ([ayrıntı |https://www.php.net/manual/en/function.imageellipse])
fill(int $x, int $y, ImageColor $color): void .[method]
-------------------------------------------------------
Verilen koordinattan (sol üst 0, 0'dır) başlayarak verilen `$color` ile taşma dolgusu yapar. ([ayrıntı |https://www.php.net/manual/en/function.imagefill])
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void .[method]
---------------------------------------------------------------------------------------------------------------------------------------------
Belirtilen koordinatlarda merkezlenmiş kısmi bir yay çizer. ([ayrıntı |https://www.php.net/manual/en/function.imagefilledarc])
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void .[method]
-----------------------------------------------------------------------------------------------------
Belirtilen koordinatlarda merkezlenmiş bir elips çizer. ([ayrıntı |https://www.php.net/manual/en/function.imagefilledellipse])
filledPolygon(array $points, ImageColor $color): void .[method]
---------------------------------------------------------------
Görselde dolgulu bir çokgen oluşturur. ([ayrıntı |https://www.php.net/manual/en/function.imagefilledpolygon])
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
--------------------------------------------------------------------------------------
Görselde, (`$x1`, `$y1`) noktasından başlayıp (`$x2`, `$y2`) noktasında biten, `$color` ile dolgulu bir dikdörtgen oluşturur. (0, 0) noktası görselin sol üst köşesidir. ([ayrıntı |https://www.php.net/manual/en/function.imagefilledrectangle])
filledRectangleWH(int $x, int $y, int $width, int $height, ImageColor $color): void .[method]
---------------------------------------------------------------------------------------------
Görselde, (`$x`, `$y`) noktasından başlayan, `$width` genişliğinde ve `$height` yüksekliğinde, `$color` ile dolgulu bir dikdörtgen oluşturur. (0, 0) noktası görselin sol üst köşesidir.
fillToBorder(int $x, int $y, ImageColor $borderColor, ImageColor $color): void .[method]
----------------------------------------------------------------------------------------
Kenarlık rengi `$borderColor` ile tanımlanan bir taşma dolgusu yapar. Dolgunun başlangıç noktası (`$x`, `$y`) (sol üst 0, 0'dır) ve bölge `$color` rengiyle doldurulur. ([ayrıntı |https://www.php.net/manual/en/function.imagefilltoborder])
filter(int $filtertype, int ...$args): void .[method]
-----------------------------------------------------
Görsele verilen `$filtertype` filtresini uygular. ([ayrıntı |https://www.php.net/manual/en/function.imagefilter])
flip(int $mode): void .[method]
-------------------------------
Görseli verilen `$mode` ile çevirir. ([ayrıntı |https://www.php.net/manual/en/function.imageflip])
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
----------------------------------------------------------------------------------------------------------------------------------------
Görsele metin yazar. ([ayrıntı |https://www.php.net/manual/en/function.imagefttext])
gammaCorrect(float $inputgamma, float $outputgamma): void .[method]
-------------------------------------------------------------------
Verilen girdi ve çıktı gama değerlerine göre görsele gama düzeltmesi uygular. ([ayrıntı |https://www.php.net/manual/en/function.imagegammacorrect])
getClip(): array .[method]
--------------------------
Geçerli kırpma dikdörtgenini, yani ötesinde hiçbir pikselin çizilmeyeceği alanı alır. ([ayrıntı |https://www.php.net/manual/en/function.imagegetclip])
getHeight(): int .[method]
--------------------------
Görselin yüksekliğini döndürür.
getImageResource(): GdImage .[method]
-------------------------------------
Alttaki GD görsel resource'unu döndürür.
getWidth(): int .[method]
-------------------------
Görselin genişliğini döndürür.
interlace(?int $interlace=null): int .[method]
----------------------------------------------
Aralamayı açar ya da kapatır. Aralama etkinse ve görsel JPEG olarak kaydedilirse, progressive JPEG olarak kaydedilir. ([ayrıntı |https://www.php.net/manual/en/function.imageinterlace])
isTrueColor(): bool .[method]
-----------------------------
Görselin true color olup olmadığını denetler. ([ayrıntı |https://www.php.net/manual/en/function.imageistruecolor])
layerEffect(int $effect): void .[method]
----------------------------------------
Katman efektlerini kullanmak için alfa harmanlama bayrağını ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagelayereffect])
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
---------------------------------------------------------------------------
Verilen iki nokta arasına bir çizgi çizer. ([ayrıntı |https://www.php.net/manual/en/function.imageline])
openPolygon(array $points, ImageColor $color): void .[method]
-------------------------------------------------------------
Görselde açık bir çokgen çizer. `polygon()` metodunun aksine son nokta ile ilk nokta arasına çizgi çizilmez. ([ayrıntı |https://www.php.net/manual/en/function.imageopenpolygon])
paletteCopy(Image $source): void .[method]
------------------------------------------
Paleti `$source` görselinden bu görsele kopyalar. ([ayrıntı |https://www.php.net/manual/en/function.imagepalettecopy])
paletteToTrueColor(): void .[method]
------------------------------------
Palet tabanlı bir görseli true color görsele dönüştürür. ([ayrıntı |https://www.php.net/manual/en/function.imagepalettetotruecolor])
place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image .[method]
---------------------------------------------------------------------------------------------
`$image` görselini geçerli görselin üzerine (`$left`, `$top`) koordinatlarına kopyalar. Koordinatlar piksel cinsinden tam sayı ya da yüzde biçiminde dize olarak (örneğin `'50%'`) belirtilebilir.
polygon(array $points, ImageColor $color): void .[method]
---------------------------------------------------------
Görselde bir çokgen oluşturur. ([ayrıntı |https://www.php.net/manual/en/function.imagepolygon])
rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void .[method]
--------------------------------------------------------------------------------
Belirtilen koordinatlarda bir dikdörtgen oluşturur. ([ayrıntı |https://www.php.net/manual/en/function.imagerectangle])
rectangleWH(int $x, int $y, int $width, int $height, ImageColor $color): void .[method]
---------------------------------------------------------------------------------------
Verilen koordinatlarda, genişlik ve yükseklik kullanarak bir dikdörtgen oluşturur.
resize(int|string $width, int|string $height, int $mode=Image::OrSmaller): Image .[method]
------------------------------------------------------------------------------------------
Görseli boyutlandırır, bkz. [ayrıntılı bilgi |#Boyutlandırma]. Boyutlar piksel cinsinden tam sayı ya da yüzde biçiminde dize olarak (örneğin `'50%'`) belirtilebilir.
resolution(?int $resX=null, ?int $resY=null): mixed .[method]
-------------------------------------------------------------
Görselin çözünürlüğünü DPI (inç başına nokta) cinsinden ayarlamaya ve almaya olanak tanır. İsteğe bağlı parametrelerden hiçbiri verilmezse geçerli çözünürlük indeksli dizi olarak döndürülür. Yalnızca `$resX` verilirse yatay ve dikey çözünürlük bu değere ayarlanır. Her iki isteğe bağlı parametre de verilirse yatay ve dikey çözünürlük sırasıyla bu değerlere ayarlanır.
Çözünürlük yalnızca meta bilgi olarak kullanılır; görseller bu tür bilgileri destekleyen biçimlerden okunurken ve bu biçimlere yazılırken (şu an PNG ve JPEG) geçerlidir. Hiçbir çizim işlemini etkilemez. Yeni görsellerde varsayılan çözünürlük 96 DPI'dır. ([ayrıntı |https://www.php.net/manual/en/function.imageresolution])
rotate(float $angle, ImageColor $backgroundColor): Image .[method]
------------------------------------------------------------------
Görseli verilen `$angle` açısı kadar derece cinsinden döndürür. Döndürme merkezi görselin merkezidir ve döndürülmüş görselin boyutları özgün görselden farklı olabilir. ([ayrıntı |https://www.php.net/manual/en/function.imagerotate])
.[note]
*Bundled GD extension* gerektirir, bu yüzden her yerde çalışmayabilir.
save(string $file, ?int $quality=null, ?int $type=null): void .[method]
-----------------------------------------------------------------------
Görseli bir dosyaya kaydeder.
Sıkıştırma kalitesi JPEG için 0-100 (varsayılan 85), WEBP için 0-100 (varsayılan 80), AVIF için 0-100 (varsayılan 30) ve PNG için 0-9 (varsayılan 9) aralığındadır. Tür dosya uzantısından anlaşılmıyorsa `ImageType` sabitlerinden biriyle belirtebilirsiniz.
saveAlpha(bool $saveflag): void .[method]
-----------------------------------------
PNG görselleri kaydedilirken (tek renkli saydamlık yerine) tam alfa kanalı bilgisinin kaydedilip kaydedilmeyeceğini belirleyen bayrağı ayarlar.
Nette bu bayrağı `Image` yapıcısında açar; böylece `fromFile()`, `fromString()` ya da `fromBlank()` ile yüklenen veya oluşturulan bir görsel alfa kanalını korur. Varsayılan harmanlama kipinde, çizilen bir rengin alfası yalnızca sonucu karıştırmak için kullanılır ve saklanmaz; bu yüzden çizilen saydamlığın korunması gerekiyorsa önce `alphaBlending(false)` çağırın. ([ayrıntı |https://www.php.net/manual/en/function.imagesavealpha])
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image .[method]
--------------------------------------------------------------------------------------
Görseli, verilen ara değerleme algoritmasını kullanarak ölçekler. ([ayrıntı |https://www.php.net/manual/en/function.imagescale])
send(int $type=ImageType::JPEG, ?int $quality=null): void .[method]
-------------------------------------------------------------------
Görseli tarayıcıya çıktılar.
Sıkıştırma kalitesi JPEG için 0-100 (varsayılan 85), WEBP için 0-100 (varsayılan 80), AVIF için 0-100 (varsayılan 30) ve PNG için 0-9 (varsayılan 9) aralığındadır.
setBrush(Image $brush): void .[method]
--------------------------------------
`IMG_COLOR_BRUSHED` ya da `IMG_COLOR_STYLEDBRUSHED` özel renkleriyle çizim yapılırken tüm çizgi çizme fonksiyonlarının (`line()` ve `polygon()` gibi) kullanacağı fırça görselini ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagesetbrush])
setClip(int $x1, int $y1, int $x2, int $y2): void .[method]
-----------------------------------------------------------
Geçerli kırpma dikdörtgenini, yani ötesinde hiçbir pikselin çizilmeyeceği alanı ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagesetclip])
setInterpolation(int $method=IMG_BILINEAR_FIXED): void .[method]
----------------------------------------------------------------
`rotate()` ve `affine()` metotlarını etkileyen ara değerleme yöntemini ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagesetinterpolation])
getInterpolation(): int .[method]
---------------------------------
`rotate()` ve `affine()` metotlarının kullandığı geçerli ara değerleme yöntemini döndürür.
setPixel(int $x, int $y, ImageColor $color): void .[method]
-----------------------------------------------------------
Belirtilen koordinata bir piksel çizer. ([ayrıntı |https://www.php.net/manual/en/function.imagesetpixel])
setStyle(array $style): void .[method]
--------------------------------------
`IMG_COLOR_STYLED` özel rengiyle çizim yapılırken ya da `IMG_COLOR_STYLEDBRUSHED` rengiyle görsel çizgileri çizilirken tüm çizgi çizme fonksiyonlarının (`line()` ve `polygon()` gibi) kullanacağı stili ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagesetstyle])
setThickness(int $thickness): void .[method]
--------------------------------------------
Dikdörtgen, çokgen, yay vb. çizilirken kullanılan çizgi kalınlığını `$thickness` piksele ayarlar. ([ayrıntı |https://www.php.net/manual/en/function.imagesetthickness])
setTile(Image $tile): void .[method]
------------------------------------
`IMG_COLOR_TILED` özel rengiyle doldurma yapılırken tüm bölge doldurma fonksiyonlarının (`fill()` ve `filledPolygon()` gibi) kullanacağı döşeme görselini ayarlar.
Döşeme, bir alanı yinelenen bir desenle doldurmak için kullanılan bir görseldir. Herhangi bir görsel döşeme olarak kullanılabilir; döşeme görselinin saydam renk indeksini `colorTransparent()` ile ayarlayarak, altta kalan alanın belirli parçalarının görünmesine izin veren bir döşeme oluşturulabilir. ([ayrıntı |https://www.php.net/manual/en/function.imagesettile])
sharpen(): Image .[method]
--------------------------
Görseli keskinleştirir.
.[note]
*Bundled GD extension* gerektirir, bu yüzden her yerde çalışmayabilir.
toString(int $type=ImageType::JPEG, ?int $quality=null): string .[method]
-------------------------------------------------------------------------
Görseli dize olarak çıktılar.
Sıkıştırma kalitesi JPEG için 0-100 (varsayılan 85), WEBP için 0-100 (varsayılan 80), AVIF için 0-100 (varsayılan 30) ve PNG için 0-9 (varsayılan 9) aralığındadır.
trueColorToPalette(bool $dither, int $ncolors): void .[method]
--------------------------------------------------------------
True color bir görseli palet görseline dönüştürür. ([ayrıntı |https://www.php.net/manual/en/function.imagetruecolortopalette])
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array .[method]
-----------------------------------------------------------------------------------------------------------------------------------------
Verilen metni görsele yazar. ([ayrıntı |https://www.php.net/manual/en/function.imagettftext])
Görsellerle Çalışma
Nette\Utils\Image sınıfı, görsellerle
çalışmayı kolaylaştırır: boyutlandırma, kırpma, keskinleştirme, çizim ya da birden çok görseli
birleştirme gibi.
PHP'nin görsel işleme için geniş bir fonksiyon kümesi vardır. Ancak API'leri pek kullanıcı dostu değildir. Nette
Framework, keyifli bir API ortaya koymasaydı Nette Framework olmazdı.
Kurulum:
composer require nette/utils
Aşağıdaki örnekler, şu sınıf takma adlarının tanımlandığını varsayar:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Görsel Oluşturma
Örneğin 100×200 boyutlarında yeni bir true color görsel oluşturun:
$image = Image::fromBlank(100, 200);
İsteğe bağlı olarak arka plan rengini de belirtebilirsiniz (varsayılan siyahtır):
Sıkıştırma kalitesini JPEG için 0–100 (varsayılan 85), WEBP için 0–100 (varsayılan 80), AVIF için 0–100
(varsayılan 30) ve PNG için 0–9 (varsayılan 9) aralığında belirtebilirsiniz:
Desteklenen biçimler JPEG, PNG, GIF, WebP, AVIF ve BMP'dir. Ancak PHP sürümünüzün de bunları desteklemesi gerekir; bunu
isTypeSupported() fonksiyonuyla doğrulayabilirsiniz. Animasyonlar desteklenmez.
Biçimler ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP,
ImageType::AVIF ve ImageType::BMP sabitleriyle temsil edilir.
Görselin biçimini yüklerken saptamanız mı gerekiyor? Metot onu ikinci parametrede döndürür:
$image = Image::fromFile('nette.jpg', $type);
Görselin kendisini yüklemeden saptama Image::detectTypeFromFile() ile yapılır.
Boyutlandırma
Yaygın işlemlerden biri görselin boyutunu değiştirmektir. Geçerli boyutları getWidth() ve
getHeight() metotları döndürür.
Boyutlandırma için resize() metodu kullanılır. Görselin 500×300 pikseli aşmaması için orantılı
boyutlandırma örneği (ya genişlik tam olarak 500px ya da yükseklik tam olarak 300px olur; diğer boyut en-boy oranını
korumak için hesaplanır):
$image->resize(500, 300);
Yalnızca bir boyut belirtilebilir, diğeri otomatik hesaplanır:
$image->resize(500, null); // genişlik 500px, yükseklik otomatik hesaplanır
$image->resize(null, 300); // genişlik otomatik hesaplanır, yükseklik 300px
Her iki boyut da yüzde olarak belirtilebilir:
$image->resize('75%', 300); // %75 × 300px
resize() davranışı aşağıdaki bayraklarla etkilenebilir. Image::Stretch dışındaki tüm
bayraklar en-boy oranını korur.
Bayrak
Açıklama
Image::OrSmaller (varsayılan)
ortaya çıkan boyutlar istenen boyutlardan küçük ya da onlara eşit olur
Image::OrBigger
hedef alanı doldurur (ve bir boyutta onu aşabilir)
Image::Cover
hedef alanı doldurur ve taşan her şeyi kırpar
Image::ShrinkOnly
yalnızca küçültür (küçük bir görselin gerilmesini önler)
Bir görseli boyutlandırdıktan sonra, hafif bir keskinleştirmeyle görünümünü iyileştirebilirsiniz:
$image->sharpen();
Kırpma
Kırpmak için crop() metodu kullanılır:
$image->crop($left, $top, $width, $height);
resize() metodunda olduğu gibi tüm değerler yüzde olarak belirtilebilir. $left ve
$top için yüzdeler, CSS'teki background-position özelliğine benzer şekilde kalan alandan
hesaplanır:
$image->crop('100%', '50%', '80%', '80%');
Görsel, örneğin siyah kenarlıkları kaldırmak için otomatik olarak da kırpılabilir:
$image->cropAuto(IMG_CROP_BLACK);
cropAuto() metodu, imagecropauto() fonksiyonunun nesne yönelimli bir sargısıdır; ayrıntılar
için belgelerine bakın.
Renkler
ImageColor::rgb() metodu, bir rengi kırmızı, yeşil ve mavi (RGB) değerleriyle tanımlamanızı sağlar.
İsteğe bağlı olarak, tıpkı CSS'teki gibi 0 (tümüyle saydam) ile 1 (tümüyle donuk) arasında bir saydamlık değeri de
belirtebilirsiniz.
$color = ImageColor::rgb(255, 0, 0); // Kırmızı
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Yarı saydam mavi
ImageColor::hex() metodu, bir rengi CSS'e benzer şekilde onaltılık biçimde tanımlamanızı sağlar.
#rgb, #rrggbb, #rgba ve #rrggbbaa biçimlerini destekler:
$color = ImageColor::hex("#F00"); // Kırmızı
$transparentGreen = ImageColor::hex("#00FF0080"); // Yarı saydam yeşil
Renkler ellipse(), fill() gibi başka metotlarda da kullanılabilir.
Çizim ve Düzenleme
PHP'nin görsel işleme fonksiyonlarının tümü, nesne yönelimli bir biçime sarılmış olarak kullanımınızdadır; bkz.
Metotlara Genel Bakış:
PHP'nin dikdörtgen çizen yerleşik fonksiyonları koordinat belirtme biçimi yüzünden pek kullanışlı olmadığından,
Image sınıfı bunların yerine geçenler sunar: rectangleWH() ve filledRectangleWH().
Birden Çok Görseli Birleştirme
Geçerli görselin üzerine kolayca başka bir görsel yerleştirebilirsiniz:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// koordinatlar yüzde olarak da belirtilebilir
$blank->place($logo, '80%', '80%'); // sağ alt köşenin yakınına yerleştir
Yerleştirme sırasında alfa kanalına saygı gösterilir. Ayrıca yerleştirilen görselin saydamlığını da
etkileyebilirsiniz (filigran oluşturarak):
static fromBlank (int $width,
int $height, ?ImageColor $color=null): Image
Verilen boyutlarda yeni bir true color görsel oluşturur. Varsayılan renk siyahtır.
static fromFile (string $file,
int &$detectedFormat=null, string &$warnings=null): Image
Bir görseli dosyadan okur ve türünü$detectedFormat içinde döndürür.
$warnings verirseniz, görsel çözücüsünün ölümcül olmayan uyarıları PHP uyarısı olarak yükseltilmek
yerine bu değişkende saklanır; uyarı yoksa null kalır.
static fromString (string $s,
int &$detectedFormat=null, string &$warnings=null): Image
Bir görseli dizeden okur ve türünü$detectedFormat içinde döndürür.
$warnings verirseniz, görsel çözücüsünün ölümcül olmayan uyarıları PHP uyarısı olarak yükseltilmek
yerine bu değişkende saklanır; uyarı yoksa null kalır.
static rgb (int $red,
int $green, int $blue, int $transparency=0): array
Bu fonksiyonun yerini ImageColor sınıfı aldı, bkz. Renkler.
Metni belirli bir yazı tipi ve boyutta çevreleyen dikdörtgenin boyutlarını hesaplar. left, top,
width, height anahtarlarını içeren ilişkisel bir dizi döndürür. Metin sola taşan bir kerning ile
başlıyorsa sol kenar boşluğu negatif olabilir.
affine (array $affine, ?array
$clip=null): Image
Kaynak görselin afin dönüşümünü, isteğe bağlı bir kırpma alanı kullanarak içeren bir görsel döndürür. (ayrıntı).
alphaBlending (bool $on): void
True color görsellerde iki farklı çizim kipine olanak tanır. Harmanlama kipinde, setPixel() gibi tüm çizim
fonksiyonlarına verilen rengin alfa kanalı bileşeni, altta kalan rengin ne kadarının görünmesine izin verileceğini
belirler. Sonuç olarak o noktadaki var olan rengi çizim rengiyle otomatik olarak harmanlar ve sonucu görselde saklar. Ortaya
çıkan piksel donuktur. Harmanlamasız kipte çizim rengi, alfa kanalı bilgisiyle birlikte harfi harfine kopyalanır ve hedef
pikselin yerini alır. Harmanlama kipi, palet görsellerinde çizim yaparken kullanılamaz. (ayrıntı)
antialias (bool $on): void
Çizgiler ve tel kafes çokgenler için hızlı kenar yumuşatmalı çizim metotlarını etkinleştirir. Alfa bileşenlerini
desteklemez. Doğrudan bir harmanlama işlemiyle çalışır. Yalnızca true color görsellerde çalışır.
Kenar yumuşatmalı ilkelleri saydam arka plan rengiyle kullanmak beklenmedik sonuçlar verebilir. Harmanlama yöntemi arka
plan rengini diğer renkler gibi kullanır. Alfa bileşeni desteğinin olmaması, alfa tabanlı bir kenar yumuşatma yöntemine
izin vermez. (ayrıntı)
arc (int $centerX, int $centerY, int
$width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Verilen koordinatlarda merkezlenmiş bir daire yayı çizer. (ayrıntı)
colorAllocate (int $red, int $green,
int $blue): int
Verilen RGB bileşenlerinden oluşan rengi temsil eden bir renk tanımlayıcısı döndürür. Görselde kullanılacak her
rengi oluşturmak için çağrılmalıdır. (ayrıntı)
colorAllocateAlpha (int $red, int
$green, int $blue, int $alpha): int
colorAllocate() ile aynı şekilde davranır, ek olarak $alpha saydamlık parametresini alır. (ayrıntı)
colorAt (int $x, int $y): int
Görselde belirtilen konumdaki pikselin renk indeksini döndürür. Görsel true color ise, bu fonksiyon o pikselin RGB
değerini tam sayı olarak döndürür. Ayrı kırmızı, yeşil ve mavi bileşen değerlerine erişmek için bit kaydırma ve
maskeleme kullanın: (ayrıntı)
colorClosest (int $red, int $green,
int $blue): int
Görselin paletinde, belirtilen RGB değerine “en yakın” rengin indeksini döndürür. İstenen renk ile paletteki her
renk arasındaki “uzaklık”, RGB değerleri üç boyutlu uzaydaki noktalarmış gibi hesaplanır. (ayrıntı)
colorClosestAlpha (int $red, int
$green, int $blue, int $alpha): int
Verilen katsayı ve kaymayı kullanarak görsele bir evrişim matrisi uygular. (ayrıntı)
Bundled GD extension gerektirir, bu yüzden her yerde çalışmayabilir.
copy (Image $src, int $dstX, int $dstY,
int $srcX, int $srcY, int $srcW, int $srcH): void
$src görselinin, $srcX, $srcY koordinatlarından başlayan $srcW
genişliğinde ve $srcH yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça $dstX
ve $dstY koordinatlarına kopyalanır. (ayrıntı)
copyMerge (Image $src, int $dstX, int
$dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
$src görselinin, $srcX, $srcY koordinatlarından başlayan $srcW
genişliğinde ve $srcH yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça $dstX
ve $dstY koordinatlarına kopyalanır. (ayrıntı)
copyMergeGray (Image $src, int $dstX,
int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
$src görselinin, $srcX, $srcY koordinatlarından başlayan $srcW
genişliğinde ve $srcH yüksekliğindeki bir parçasını görsele kopyalar. Tanımlanan parça $dstX
ve $dstY koordinatlarına kopyalanır.
Bu fonksiyon copyMerge() ile aynıdır; tek farkı, birleştirirken kopyalama işleminden önce hedef pikselleri
gri tonlamaya çevirerek kaynağın tonunu korumasıdır. (ayrıntı)
copyResampled (Image $src, int $dstX,
int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int
$srcH): void
Bir görselin dikdörtgen bir parçasını başka bir görsele, piksel değerlerini yumuşakça ara değerleyerek kopyalar;
böylece özellikle bir görseli küçültürken netlik büyük ölçüde korunur.
Başka bir deyişle copyResampled(), $src görselinden ($srcX,$srcY)
konumundaki $srcW genişliğinde ve $srcH yüksekliğindeki dikdörtgen alanı alır ve onu görselde
($dstX,$dstY) konumundaki $dstW genişliğinde ve $dstH yüksekliğindeki
dikdörtgen alana yerleştirir.
Kaynak ve hedefin koordinatları ile genişlik ve yükseklikleri farklıysa, görsel parçası uygun şekilde gerilir ya da
küçültülür. Koordinatlar sol üst köşeye göredir. Bu fonksiyon aynı görsel içindeki bölgeleri kopyalamak için de
kullanılabilir, ama bölgeler örtüşürse sonuçlar öngörülemez olur. (ayrıntı)
copyResized (Image $src, int $dstX,
int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int
$srcH): void
Bir görselin dikdörtgen bir parçasını başka bir görsele kopyalar. Başka bir deyişle copyResized(),
$src görselinden ($srcX,$srcY) konumundaki $srcW genişliğinde ve
$srcH yüksekliğindeki dikdörtgen alanı alır ve onu görselde ($dstX,$dstY) konumundaki
$dstW genişliğinde ve $dstH yüksekliğindeki dikdörtgen alana yerleştirir.
Kaynak ve hedefin koordinatları ile genişlik ve yükseklikleri farklıysa, görsel parçası uygun şekilde gerilir ya da
küçültülür. Koordinatlar sol üst köşeye göredir. Bu fonksiyon aynı görsel içindeki bölgeleri kopyalamak için de
kullanılabilir, ama bölgeler örtüşürse sonuçlar öngörülemez olur. (ayrıntı)
filledRectangle (int $x1, int $y1,
int $x2, int $y2, ImageColor $color): void
Görselde, ($x1, $y1) noktasından başlayıp ($x2, $y2) noktasında biten,
$color ile dolgulu bir dikdörtgen oluşturur. (0, 0) noktası görselin sol üst köşesidir. (ayrıntı)
filledRectangleWH (int $x, int $y,
int $width, int $height, ImageColor $color): void
Görselde, ($x, $y) noktasından başlayan, $width genişliğinde ve
$height yüksekliğinde, $color ile dolgulu bir dikdörtgen oluşturur. (0, 0) noktası görselin sol
üst köşesidir.
fillToBorder (int $x, int $y,
ImageColor $borderColor, ImageColor $color): void
Kenarlık rengi $borderColor ile tanımlanan bir taşma dolgusu yapar. Dolgunun başlangıç noktası
($x, $y) (sol üst 0, 0'dır) ve bölge $color rengiyle doldurulur. (ayrıntı)
filter (int $filtertype, int
…$args): void
Görsele verilen $filtertype filtresini uygular. (ayrıntı)
Görselde açık bir çokgen çizer. polygon() metodunun aksine son nokta ile ilk nokta arasına çizgi çizilmez.
(ayrıntı)
paletteCopy (Image $source): void
Paleti $source görselinden bu görsele kopyalar. (ayrıntı)
paletteToTrueColor(): void
Palet tabanlı bir görseli true color görsele dönüştürür. (ayrıntı)
place (Image $image, int|string $left=0,
int|string $top=0, int $opacity=100): Image
$image görselini geçerli görselin üzerine ($left, $top) koordinatlarına kopyalar.
Koordinatlar piksel cinsinden tam sayı ya da yüzde biçiminde dize olarak (örneğin '50%') belirtilebilir.
Görselin çözünürlüğünü DPI (inç başına nokta) cinsinden ayarlamaya ve almaya olanak tanır. İsteğe bağlı
parametrelerden hiçbiri verilmezse geçerli çözünürlük indeksli dizi olarak döndürülür. Yalnızca $resX
verilirse yatay ve dikey çözünürlük bu değere ayarlanır. Her iki isteğe bağlı parametre de verilirse yatay ve dikey
çözünürlük sırasıyla bu değerlere ayarlanır.
Çözünürlük yalnızca meta bilgi olarak kullanılır; görseller bu tür bilgileri destekleyen biçimlerden okunurken ve bu
biçimlere yazılırken (şu an PNG ve JPEG) geçerlidir. Hiçbir çizim işlemini etkilemez. Yeni görsellerde varsayılan
çözünürlük 96 DPI'dır. (ayrıntı)
Görseli verilen $angle açısı kadar derece cinsinden döndürür. Döndürme merkezi görselin merkezidir ve
döndürülmüş görselin boyutları özgün görselden farklı olabilir. (ayrıntı)
Bundled GD extension gerektirir, bu yüzden her yerde çalışmayabilir.
save (string $file, ?int $quality=null,
?int $type=null): void
Görseli bir dosyaya kaydeder.
Sıkıştırma kalitesi JPEG için 0–100 (varsayılan 85), WEBP için 0–100 (varsayılan 80), AVIF için 0–100
(varsayılan 30) ve PNG için 0–9 (varsayılan 9) aralığındadır. Tür dosya uzantısından anlaşılmıyorsa
ImageType sabitlerinden biriyle belirtebilirsiniz.
saveAlpha (bool $saveflag): void
PNG görselleri kaydedilirken (tek renkli saydamlık yerine) tam alfa kanalı bilgisinin kaydedilip kaydedilmeyeceğini
belirleyen bayrağı ayarlar.
Nette bu bayrağı Image yapıcısında açar; böylece fromFile(), fromString() ya da
fromBlank() ile yüklenen veya oluşturulan bir görsel alfa kanalını korur. Varsayılan harmanlama kipinde,
çizilen bir rengin alfası yalnızca sonucu karıştırmak için kullanılır ve saklanmaz; bu yüzden çizilen saydamlığın
korunması gerekiyorsa önce alphaBlending(false) çağırın. (ayrıntı)
scale (int $newWidth, int $newHeight=-1,
int $mode=IMG_BILINEAR_FIXED): Image
Görseli, verilen ara değerleme algoritmasını kullanarak ölçekler. (ayrıntı)
Sıkıştırma kalitesi JPEG için 0–100 (varsayılan 85), WEBP için 0–100 (varsayılan 80), AVIF için 0–100
(varsayılan 30) ve PNG için 0–9 (varsayılan 9) aralığındadır.
setBrush (Image $brush): void
IMG_COLOR_BRUSHED ya da IMG_COLOR_STYLEDBRUSHED özel renkleriyle çizim yapılırken tüm çizgi
çizme fonksiyonlarının (line() ve polygon() gibi) kullanacağı fırça görselini ayarlar. (ayrıntı)
setClip (int $x1, int $y1, int $x2,
int $y2): void
Geçerli kırpma dikdörtgenini, yani ötesinde hiçbir pikselin çizilmeyeceği alanı ayarlar. (ayrıntı)
IMG_COLOR_STYLED özel rengiyle çizim yapılırken ya da IMG_COLOR_STYLEDBRUSHED rengiyle görsel
çizgileri çizilirken tüm çizgi çizme fonksiyonlarının (line() ve polygon() gibi) kullanacağı
stili ayarlar. (ayrıntı)
setThickness (int $thickness): void
Dikdörtgen, çokgen, yay vb. çizilirken kullanılan çizgi kalınlığını $thickness piksele ayarlar. (ayrıntı)
setTile (Image $tile): void
IMG_COLOR_TILED özel rengiyle doldurma yapılırken tüm bölge doldurma fonksiyonlarının (fill()
ve filledPolygon() gibi) kullanacağı döşeme görselini ayarlar.
Döşeme, bir alanı yinelenen bir desenle doldurmak için kullanılan bir görseldir. Herhangi bir görsel döşeme olarak
kullanılabilir; döşeme görselinin saydam renk indeksini colorTransparent() ile ayarlayarak, altta kalan alanın
belirli parçalarının görünmesine izin veren bir döşeme oluşturulabilir. (ayrıntı)
sharpen(): Image
Görseli keskinleştirir.
Bundled GD extension gerektirir, bu yüzden her yerde çalışmayabilir.
Sıkıştırma kalitesi JPEG için 0–100 (varsayılan 85), WEBP için 0–100 (varsayılan 80), AVIF için 0–100
(varsayılan 30) ve PNG için 0–9 (varsayılan 9) aralığındadır.
trueColorToPalette (bool $dither,
int $ncolors): void
True color bir görseli palet görseline dönüştürür. (ayrıntı)
ttfText (float $size, float $angle, int
$x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array