Görüntü Fonksiyonları
Nette\Utils\Image sınıfı, yeniden boyutlandırma, kırpma, keskinleştirme, çizim veya birden fazla görüntüyü birleştirme gibi görüntü manipülasyonunu basitleştirir.
PHP, görüntüleri işlemek için kapsamlı bir işlev setine sahiptir. Ancak API pek hoş değil. Seksi bir API ile ortaya çıkmak için Neat Framework olmazdı.
Kurulum:
composer require nette/utils
Aşağıdaki örneklerde, aşağıdaki sınıf takma adının tanımlandığı varsayılmaktadır:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Görüntü Oluşturma
Örneğin 100×200 boyutlarında yeni bir gerçek renkli görüntü oluşturacağız:
$image = Image::fromBlank(100, 200);
İsteğe bağlı olarak bir arka plan rengi belirtebilirsiniz (varsayılan renk siyahtır):
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Ya da görüntüyü bir dosyadan yükleriz:
$image = Image::fromFile('nette.jpg');
Görüntüyü Kaydet
Görüntü bir dosyaya kaydedilebilir:
$image->save('resampled.jpg');
Sıkıştırma kalitesini JPEG (varsayılan 85), WEBP (varsayılan 80) ve AVIF (varsayılan 30) için 0..100 ve PNG (varsayılan 9) için 0..9 aralığında belirleyebiliriz:
$image->save('resampled.jpg', 80); // JPEG, kalite %80
Format dosya uzantısından anlaşılmıyorsa, sabit ile belirtilebilir:
$image->save('resampled.tmp', null, ImageType::JPEG);
Görüntü disk yerine bir değişkene yazılabilir:
$data = $image->toString(ImageType::JPEG, 80); // JPEG, kalite %80.
veya uygun HTTP başlığıyla doğrudan tarayıcıya gönderin Content-Type
:
// başlık gönderir Content-Type: image/png
$image->send(ImageType::PNG);
Formatlar
Desteklenen biçimler JPEG, PNG, GIF, WebP, AVIF ve BMP'dir. Ancak, bunların PHP sürümünüz tarafından da destekleniyor olması gerekir; isTypeSupported() işlevi kullanılarak bu doğrulanabilir. Animasyonlar desteklenmez.
Biçimler ImageType::JPEG
, ImageType::PNG
, ImageType::GIF
, ImageType::WEBP
,
ImageType::AVIF
ve ImageType::BMP
sabitleri ile temsil edilir.
$supported = Image::isTypeSupported(ImageType::JPEG);
Yükleme sırasında bir görüntünün formatını tespit etmeniz mi gerekiyor? Yöntem bunu ikinci parametrede döndürür:
$image = Image::fromFile('nette.jpg', $type);
Görüntü yüklenmeden gerçek algılama Image::detectTypeFromFile()
tarafından gerçekleştirilir.
Görüntü Yeniden Boyutlandırma
Yaygın bir işlem, bir görüntüyü yeniden boyutlandırmaktır. Geçerli boyutlar getWidth()
ve
getHeight()
yöntemleri tarafından döndürülür.
Yeniden boyutlandırma için resize()
yöntemi kullanılır. Bu, 500×300 pikseli aşmayacak şekilde orantılı
boyut değişikliği örneğidir (genişlik tam olarak 500 piksel veya yükseklik tam olarak 300 piksel olacaktır, boyutlardan
biri en boy oranını korumak için hesaplanır):
$image->resize(500, 300);
Yalnızca bir boyut ayarlamak mümkündür ve ikincisi hesaplanacaktır:
$image->resize(500, null); // genişlik 500px, yükseklik otomatik
$image->resize(null, 300); // genişlik otomatik, yükseklik 300px
Herhangi bir boyut yüzde olarak belirtilebilir:
$image->resize('75%', 300); // 75 % × 300px
resize
adresinin davranışı aşağıdaki bayraklardan etkilenebilir. Image::Stretch
hariç hepsi en
boy oranını korur.
Bayrak | Açıklama |
---|---|
Image::OrSmaller (varsayılan) |
sonuçta elde edilen boyutlar belirtilenden küçük veya eşit olacaktır |
Image::OrBigger |
hedef alanı doldurur ve muhtemelen bir yönde genişletir |
Image::Cover |
tüm alanı doldurur ve onu aşanları keser |
Image::ShrinkOnly |
sadece aşağı ölçeklendirir (küçük bir görüntüyü genişletmez) |
Image::Stretch |
en boy oranını korumaz |
Bayraklar fonksiyonun üçüncü argümanı olarak aktarılır:
$image->resize(500, 300, Image::OrBigger);
Bayraklar birleştirilebilir:
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
Boyutlardan biri (veya her ikisi) negatif sayı olarak belirtilerek görüntüler dikey veya yatay olarak çevrilebilir:
$flipped = $image->resize(null, '-100%'); // dikey çevir
$flipped = $image->resize('-100%', '-100%'); // 180° döndür
$flipped = $image->resize(-125, 500); // yeniden boyutlandır ve yatay çevir
Görüntüyü küçülttükten sonra keskinleştirerek iyileştirebiliriz:
$image->sharpen();
Kırpma
Kırpma için crop()
yöntemi kullanılır:
$image->crop($left, $top, $width, $height);
resize()
adresinde olduğu gibi, tüm değerler yüzde olarak belirtilebilir. $left
ve
$top
için yüzdeler, background-position
CSS özelliğine benzer şekilde kalan alandan
hesaplanır:
$image->crop('100%', '50%', '80%', '80%');
Görüntü otomatik olarak da kırpılabilir, örneğin siyah kenarlar kırpılabilir:
$image->cropAuto(IMG_CROP_BLACK);
cropAuto()
yöntemi, imagecropauto()
işlevinin bir nesne kapsüllemesidir, daha fazla bilgi için belgelerine bakın.
Renkler
ImageColor::rgb()
yöntemi, kırmızı, yeşil ve mavi (RGB) değerlerini kullanarak bir renk tanımlamanıza
olanak tanır. İsteğe bağlı olarak, CSS'de olduğu gibi 0 (tamamen saydam) ile 1 (tamamen opak) arasında değişen bir
saydamlık değeri de belirtebilirsiniz.
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
ImageColor::hex()
yöntemi, CSS'ye benzer şekilde onaltılık biçimi kullanarak bir renk tanımlamanıza olanak
tanır. #rgb
, #rrggbb
, #rgba
ve #rrggbbaa
biçimlerini destekler:
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
Renkler ellipse()
, fill()
, vb. gibi diğer yöntemlerde de kullanılabilir.
Çizim ve Düzenleme
Çizebilir, yazabilir, resim işleme için tüm PHP işlevlerini kullanabilirsiniz, bkz. yöntemlere genel bakış, ancak nesne yönelimli bir sarmalayıcı içinde:
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
Dikdörtgen çizmek için PHP işlevleri koordinat belirtmek nedeniyle pratik olmadığından, Image
sınıfı
bunların yerine rectangleWH() ve filledRectangleWH()
işlevlerini sunar.
Birden Fazla Görüntüyü Birleştirme
Görüntünün içine kolayca başka bir görüntü yerleştirebilirsiniz:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// koordinatlar yüzde olarak da ayarlanabilir
$blank->place($logo, '80%', '80%'); // sağ alt köşeye yakın
Yapıştırırken, alfa kanalına saygı duyulur, ayrıca eklenen görüntünün şeffaflığını etkileyebiliriz (sözde bir filigran oluşturacağız):
$blank->place($image, '80%', '80%', 25); // şeffaflık %25
Böyle bir API'yi kullanmak gerçekten bir zevk, değil mi?
Yöntemlere Genel Bakış
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Verilen boyutlarda yeni bir gerçek renkli görüntü oluşturur. Varsayılan renk siyahtır.
static fromFile(string $file, int &$detectedFormat=null): Image
Dosyadan bir görüntü okur ve türünü $detectedFormat
olarak döndürür.
static fromString(string $s, int &$detectedFormat=null): Image
Bir dizeden bir görüntü okur ve türünü $detectedFormat
olarak döndürür.
static rgb(int $red, int $green, int $blue, int $transparency=0): array
Bu özellik ImageColor
sınıfı ile değiştirilmiştir, bkz. renkler.
static typeToExtension(int $type): string
Verilen tür için dosya uzantısını döndürür.
static typeToMimeType(int $type): string
Verilen tür için mime türünü döndürür.
static extensionToType(string $extension): int
Dosya uzantısına göre görüntü türünü döndürür.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int
Görüntü dosyasının türünü ve $width
ve $height
parametrelerinde de
boyutlarını döndürür.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int
Dizeden görüntünün türünü ve $width
ve $height
parametrelerinden de
boyutlarını döndürür.
static isTypeSupported(int $type): bool
Verilen görüntü türünün desteklenip desteklenmediğini belirler.
static getSupportedTypes(): array
Desteklenen görüntü türlerinin bir dizisini döndürür (sabitler ImageType::XXX
).
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Metni belirtilen yazı tipi ve boyutta çevreleyen dikdörtgenin boyutlarını hesaplar. left
, top
,
width
, height
anahtarlarını içeren bir ilişkisel dizi döndürür. Metin sola doğru bir
çıkıntıyla başlıyorsa, sol kenar boşluğu negatif olabilir.
affine(array $affine, ?array $clip=null): Image
İsteğe bağlı bir kırpma alanı kullanarak, afin dönüşümü yapılmış src görüntüsünü içeren bir görüntü döndürür. (daha fazla).
affineMatrixConcat(array $m1, array $m2): array
İki afin dönüşüm matrisinin birleştirilmesini döndürür; bu, aynı görüntüye tek seferde birden fazla dönüşüm uygulanması gerektiğinde kullanışlıdır. (daha fazla)
affineMatrixGet(int $type, ?mixed $options=null): array
Bir afin dönüşüm matrisi döndürür. (daha fazla)
alphaBlending(bool $on): void
Gerçek renkli görüntüler üzerinde iki farklı çizim moduna izin verir. Karıştırma modunda, setPixel()
gibi tüm çizim işlevlerine sağlanan rengin alfa kanalı bileşeni, altta yatan rengin ne kadarının parlamasına izin
verilmesi gerektiğini belirler. Sonuç olarak, o noktadaki mevcut rengi çizim rengiyle otomatik olarak karıştırır ve sonucu
görüntüde saklar. Ortaya çıkan piksel opaktır. Karışımsız modda, çizim rengi alfa kanalı bilgisiyle birlikte tam
anlamıyla kopyalanır ve hedef pikselin yerini alır. Palet görüntüleri üzerinde çizim yaparken karıştırma modu
kullanılamaz. (daha fazla)
antialias(bool $on): void
Çizgiler ve kablolu çokgenler için hızlı çizim antialiased yöntemlerini etkinleştirin. Alfa bileşenlerini desteklemez. Doğrudan harmanlama işlemi kullanılarak çalışır. Yalnızca gerçek renkli görüntülerle çalışır.
Şeffaf arka plan rengiyle kenar yumuşatılmış ilkel öğelerin kullanılması bazı beklenmedik sonuçlara yol açabilir. Karışım 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. (daha fazla)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Verilen koordinatları merkez alan bir daire yayı çizer. (daha fazla)
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örüntüde kullanılacak her bir rengi oluşturmak için çağrılmalıdır. (daha fazla)
colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int
Şeffaflık parametresinin eklenmesiyle colorAllocate()
ile aynı şekilde davranır $alpha
. (daha fazla)
colorAt(int $x, int $y): int
Görüntüde belirtilen konumdaki pikselin renginin indeksini döndürür. Görüntü gerçek renkli bir görüntüyse, bu fonksiyon o pikselin RGB değerini tamsayı olarak döndürür. Farklı kırmızı, yeşil ve mavi bileşen değerlerine erişmek için bit kaydırma ve maskeleme kullanın: (devamı)
colorClosest(int $red, int $green, int $blue): int
Görüntünün paletinde belirtilen RGB değerine „en yakın“ olan rengin indeksini döndürür. İstenen renk ile paletteki her renk arasındaki „mesafe“, RGB değerleri üç boyutlu uzaydaki noktaları temsil ediyormuş gibi hesaplanır. (daha fazla)
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int
Görüntünün paletinde belirtilen RGB değerine ve $alpha
düzeyine „en yakın“ rengin indeksini
döndürür. (daha fazla)
colorClosestHWB(int $red, int $green, int $blue): int
Verilen renge en yakın ton, beyaz ve siyahlığa sahip rengin indeksini alır. (daha fazla)
colorDeallocate(int $color): void
Daha önce colorAllocate()
veya colorAllocateAlpha()
ile tahsis edilmiş bir rengin tahsisini
kaldırır. (daha fazla)
colorExact(int $red, int $green, int $blue): int
Görüntünün paletinde belirtilen rengin indeksini döndürür. (daha fazla)
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int
Görüntünün paletinde belirtilen renk+alfa indeksini döndürür. (daha fazla)
colorMatch(Image $image2): void
Bir görüntünün palet sürümünün renklerinin gerçek renk sürümüne daha yakın olmasını sağlar. (daha fazla)
colorResolve(int $red, int $green, int $blue): int
İstenen renk için bir renk indeksi döndürür, ya tam renk ya da mümkün olan en yakın alternatif. (daha fazla)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
İstenen renk için bir renk indeksi döndürür, ya tam renk ya da mümkün olan en yakın alternatif. (daha fazla)
colorSet(int $index, int $red, int $green, int $blue): void
Bu, palette belirtilen indeksi belirtilen renge ayarlar. (daha fazla)
colorsForIndex(int $index): array
Belirtilen bir indeks için rengi döndürür. (daha fazla)
colorsTotal(): int
Bir görüntü paletindeki renk sayısını döndürür (daha fazla).
colorTransparent(?int $color=null): int
Görüntüdeki saydam rengi alır veya ayarlar. (daha fazla)
convolution(array $matrix, float $div, float $offset): void
Verilen katsayı ve ofseti kullanarak görüntü üzerinde bir konvolüsyon matrisi uygular. (daha fazla)
Paketlenmiş GD uzantısı* gerektirir, bu nedenle her yerde çalışacağından emin değildir.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
$src
adresinin bir bölümünü $srcX
, $srcY
koordinatlarından başlayarak
$srcW
genişliğinde ve $srcH
yüksekliğinde görüntü üzerine kopyalar. Tanımlanan kısım
$dstX
ve $dstY
koordinatlarına kopyalanacaktır. (daha fazla)
copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
$src
adresinin bir bölümünü $srcX
, $srcY
koordinatlarından başlayarak
$srcW
genişliğinde ve $srcH
yüksekliğinde görüntü üzerine kopyalar. Tanımlanan kısım
$dstX
ve $dstY
koordinatlarına kopyalanacaktır. (daha fazla)
copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
$src
adresinin bir bölümünü $srcX
, $srcY
koordinatlarından başlayarak
$srcW
genişliğinde ve $srcH
yüksekliğinde görüntü üzerine kopyalar. Tanımlanan kısım
$dstX
ve $dstY
koordinatlarına kopyalanacaktır.
Bu işlev copyMerge()
ile aynıdır, ancak birleştirme sırasında hedef pikselleri kopyalama işleminden önce
gri ölçeğe dönüştürerek kaynağın tonunu korur. (daha
fazla)
copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Bir görüntünün dikdörtgen bir bölümünü başka bir görüntüye kopyalar, piksel değerlerini düzgün bir şekilde enterpole eder, böylece özellikle bir görüntünün boyutunun küçültülmesi hala büyük ölçüde netliği korur.
Başka bir deyişle, copyResampled()
$src
adresinden ($srcX
,$srcY
)
konumunda $srcW
genişliğinde ve $srcH
yüksekliğinde dikdörtgen bir alan alacak ve bunu
($dstX
,$dstY
) konumunda $dstW
genişliğinde ve $dstH
yüksekliğinde
dikdörtgen bir görüntü alanına yerleştirecektir.
Kaynak ve hedef koordinatları ile genişlik ve yükseklikler farklıysa, görüntü parçasında uygun germe veya küçültme işlemi gerçekleştirilir. Koordinatlar sol üst köşeyi ifade eder. Bu fonksiyon aynı görüntü içindeki bölgeleri kopyalamak için kullanılabilir ancak bölgeler çakışırsa sonuçlar tahmin edilemez olacaktır. (daha fazla)
copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Bir görüntünün dikdörtgen bir bölümünü başka bir görüntüye kopyalar. Başka bir deyişle,
copyResized()
$src
adresinden ($srcX
,$srcY
) konumunda $srcW
genişliğinde ve $srcH
yüksekliğinde dikdörtgen bir alan alacak ve bunu ($dstX
,$dstY
)
konumunda $dstW
genişliğinde ve $dstH
yüksekliğinde dikdörtgen bir görüntü alanına
yerleştirecektir.
Kaynak ve hedef koordinatları ile genişlik ve yükseklikler farklıysa, görüntü parçasında uygun germe veya küçültme işlemi gerçekleştirilir. Koordinatlar sol üst köşeyi ifade eder. Bu fonksiyon aynı görüntü içindeki bölgeleri kopyalamak için kullanılabilir ancak bölgeler üst üste gelirse sonuçlar tahmin edilemez olacaktır. (daha fazla)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Bir görüntüyü verilen dikdörtgen alana kırpar. Boyutlar piksel cinsinden tamsayılar veya yüzde cinsinden dizeler olarak
aktarılabilir (örn. '50%'
).
cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Bir görüntüyü verilen $mode
adresine göre otomatik olarak kırpar. (daha fazla)
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Belirtilen koordinatlarda ortalanmış bir elips çizer. (daha fazla)
fill(int $x, int $y, ImageColor $color): void
Verilen koordinattan başlayarak (sol üst 0, 0'dır) görüntüde verilen $color
ile bir sel dolgusu
gerçekleştirir. (daha fazla)
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Görüntüde belirtilen koordinatı merkez alan kısmi bir yay çizer. (daha fazla)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Görüntüde belirtilen koordinatı merkez alan bir elips çizer. (daha fazla)
filledPolygon(array $points, ImageColor $color): void
Resim içinde dolu bir çokgen oluşturur. (daha fazla)
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Görüntüde $x1
& $y1
adresinden başlayıp $x2
& $y2
adresinde
biten $color
ile doldurulmuş bir dikdörtgen oluşturur. 0, 0 noktası görüntünün sol üst köşesidir. (daha fazla)
filledRectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Görüntüde $left
& $top
noktasından başlayarak genişliği $width
ve
yüksekliği $height
olan $color
ile doldurulmuş bir dikdörtgen oluşturur. 0, 0 noktası
görüntünün sol üst köşesidir.
fillToBorder(int $x, int $y, int $border, ImageColor $color): void
Kenarlık rengi $border
tarafından tanımlanan bir taşma dolgusu gerçekleştirir. Dolgu için başlangıç
noktası $x
, $y
(sol üst 0, 0'dır) ve bölge $color
rengi ile doldurulur. (daha fazla)
filter(int $filtertype, int …$args): void
Verilen filtreyi $filtertype
görüntü üzerinde uygular. (daha fazla)
flip(int $mode): void
Verilen $mode
adresini kullanarak görüntüyü çevirir. (daha fazla)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Resimdeki metni yazın. (daha fazla)
gammaCorrect(float $inputgamma, float $outputgamma): void
Bir giriş ve bir çıkış gaması verilen görüntüye gama düzeltmesi uygular. (daha fazla)
getClip(): array
Geçerli kırpma dikdörtgenini, yani ötesinde hiçbir pikselin çizilmeyeceği alanı alır. (daha fazla)
getHeight(): int
Görüntünün yüksekliğini döndürür.
getImageResource(): resource|GdImage
Orijinal kaynağı döndürür.
getWidth(): int
Görüntünün genişliğini döndürür.
interlace(?int $interlace=null): int
Geçiş bitini açar veya kapatır. Geçiş biti ayarlanmışsa ve görüntü bir JPEG görüntüsü olarak kullanılıyorsa, görüntü aşamalı bir JPEG olarak oluşturulur. (daha fazla)
isTrueColor(): bool
Görüntünün gerçek renk olup olmadığını bulur. (daha fazla)
layerEffect(int $effect): void
Katmanlama efektlerini kullanmak için alfa karıştırma bayrağını ayarlayın. (daha fazla)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Verilen iki nokta arasında bir çizgi çizer. (daha fazla)
openPolygon(array $points, ImageColor $color): void
Görüntü üzerine açık bir çokgen çizer. polygon()
'un aksine, son nokta ile ilk nokta arasında bir çizgi
çizilmez. (daha fazla)
paletteCopy(Image $source): void
Paleti $source
adresinden görüntüye kopyalar. (daha fazla)
paletteToTrueColor(): void
create()
gibi işlevler tarafından oluşturulan palet tabanlı bir görüntüyü createtruecolor()
gibi gerçek renkli bir görüntüye dönüştürür. (daha fazla)
place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image
$image
adresini $left
ve $top
koordinatlarındaki görüntüye kopyalar. Koordinatlar
piksel cinsinden tamsayılar veya yüzde cinsinden dizeler olarak aktarılabilir (örn. '50%'
).
polygon(array $points, ImageColor $color): void
Görüntüde bir çokgen oluşturur. (daha fazla)
rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Belirtilen koordinatlardan başlayan bir dikdörtgen oluşturur. (daha fazla)
rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Verilen koordinatlarda bir dikdörtgen oluşturur.
resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Bir görüntüyü ölçeklendirir, daha fazla bilgi için bkz. Boyutlar piksel cinsinden
tamsayılar veya yüzde cinsinden dizeler olarak aktarılabilir (örn. '50%'
).
resolution(?int $resX=null, ?int $resY=null): mixed
DPI (inç başına nokta) cinsinden bir görüntünün çözünürlüğünü ayarlamaya ve almaya izin verir. İ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
adresi 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 görüntüler bu tür bilgileri destekleyen formatlardan (şu anda PNG ve JPEG) okunduğunda ve bu formatlara yazıldığında meta bilgi olarak kullanılır. Herhangi bir çizim işlemini etkilemez. Yeni görüntüler için varsayılan çözünürlük 96 DPI'dır. (daha fazla)
rotate(float $angle, int $backgroundColor): Image
Verilen $angle
adresini derece cinsinden kullanarak görüntüyü döndürür. Döndürme merkezi görüntünün
merkezidir ve döndürülen görüntü orijinal görüntüden farklı boyutlara sahip olabilir. (daha fazla)
Paketlenmiş GD uzantısı* gerektirir, bu nedenle her yerde çalışacağından emin değildir.
save(string $file, ?int $quality=null, ?int $type=null): void
Bir görüntüyü bir dosyaya kaydeder.
Sıkıştırma kalitesi JPEG (varsayılan 85), WEBP (varsayılan 80) ve AVIF (varsayılan 30) için 0..100 ve PNG (varsayılan
9) için 0..9 aralığındadır. Tür dosya uzantısından anlaşılmıyorsa, ImageType
sabitlerinden birini
kullanarak belirtebilirsiniz.
saveAlpha(bool $saveflag): void
PNG görüntüleri kaydedilirken tam alfa kanalı bilgisinin (tek renkli saydamlığın aksine) korunup korunmayacağını belirleyen bayrağı ayarlar.
İlk etapta alfa kanalını korumak için alfabe oluşturma devre dışı bırakılmalıdır
(alphaBlending(false)
). (daha fazla)
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Verilen enterpolasyon algoritmasını kullanarak bir görüntüyü ölçeklendirir. (daha fazla)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Tarayıcıya bir görüntü çıktısı verir.
Sıkıştırma kalitesi JPEG (varsayılan 85), WEBP (varsayılan 80) ve AVIF (varsayılan 30) için 0..100 ve PNG (varsayılan 9) için 0..9 aralığındadır.
setBrush(Image $brush): void
IMG_COLOR_BRUSHED veya IMG_COLOR_STYLEDBRUSHED özel renkleriyle çizim yaparken tüm çizgi çizim fonksiyonları (
line()
ve polygon()
gibi) tarafından kullanılacak fırça görüntüsünü ayarlar. (daha fazla)
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. (daha fazla)
setInterpolation(int $method=IMG_BILINEAR_FIXED): void
rotate()
ve affine()
yöntemlerini etkileyen enterpolasyon yöntemini ayarlar. (daha fazla)
setPixel(int $x, int $y, ImageColor $color): void
Belirtilen koordinatta bir piksel çizer. (devamı)
setStyle(array $style): void
IMG_COLOR_STYLED özel rengiyle veya IMG_COLOR_STYLEDBRUSHED rengine sahip görüntülerin çizgileriyle çizim yaparken tüm
çizgi çizim işlevleri ( line()
ve polygon()
gibi) tarafından kullanılacak stili ayarlar. (daha fazla)
setThickness(int $thickness): void
Dikdörtgenler, çokgenler, yaylar vb. çizerken çizilen çizgilerin kalınlığını $thickness
piksel olarak
ayarlar. (devamı)
setTile(Image $tile): void
IMG_COLOR_TILED özel rengiyle doldururken tüm bölge doldurma işlevleri ( fill()
ve
filledPolygon()
gibi) tarafından kullanılacak döşeme görüntüsünü ayarlar.
Karo, bir alanı tekrarlanan bir desenle doldurmak için kullanılan bir görüntüdür. Herhangi bir görüntü karo olarak
kullanılabilir ve karo görüntüsünün şeffaf renk indeksi colorTransparent()
ile ayarlanarak, alttaki alanın
belirli kısımlarının parlamasına izin veren bir karo oluşturulabilir. (daha fazla)
sharpen(): Image
Görüntüyü biraz keskinleştirir.
Paketlenmiş GD uzantısı* gerektirir, bu nedenle her yerde çalışacağından emin değiliz.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Bir görüntüyü dizeye çıktı olarak verir.
Sıkıştırma kalitesi JPEG (varsayılan 85), WEBP (varsayılan 80) ve AVIF (varsayılan 30) için 0..100 ve PNG (varsayılan 9) için 0..9 aralığındadır.
trueColorToPalette(bool $dither, int $ncolors): void
Bir gerçek renkli görüntüyü bir palet görüntüsüne dönüştürür. (daha fazla)
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Verilen metni resmin içine yazar. (daha fazla)