Bildfunktionen
Die Klasse Nette\Utils\Image vereinfacht die Bildbearbeitung, z. B. das Ändern der Größe, Beschneiden, Schärfen, Zeichnen oder Zusammenführen mehrerer Bilder.
PHP verfügt über einen umfangreichen Satz von Funktionen zur Bearbeitung von Bildern. Aber die API ist nicht sehr schön. Es wäre kein Neat Framework, wenn es eine sexy API gäbe.
Einbau:
composer require nette/utils
Die folgenden Beispiele gehen davon aus, dass der folgende Klassenalias definiert ist:
use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;
Ein Bild erstellen
Wir erstellen ein neues Echtfarbbild, zum Beispiel mit den Maßen 100×200:
$image = Image::fromBlank(100, 200);
Optional können Sie eine Hintergrundfarbe angeben (Standard ist schwarz):
$image = Image::fromBlank(100, 200, ImageColor::rgb(125, 0, 0));
Oder wir laden das Bild aus einer Datei:
$image = Image::fromFile('nette.jpg');
Speichern Sie das Bild
Das Bild kann in einer Datei gespeichert werden:
$image->save('resampled.jpg');
Wir können die Komprimierungsqualität im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) und 0..9 für PNG (Standard 9) festlegen:
$image->save('resampled.jpg', 80); // JPEG, Qualität 80%
Wenn das Format nicht aus der Dateierweiterung ersichtlich ist, kann es durch eine Konstante angegeben werden:
$image->save('resampled.tmp', null, ImageType::JPEG);
Das Bild kann in eine Variable statt auf die Festplatte geschrieben werden:
$data = $image->toString(ImageType::JPEG, 80); // JPEG, Qualität 80%.
oder direkt an den Browser mit dem entsprechenden HTTP-Header Content-Type
senden:
// sendet Kopfzeile Content-Type: image/png
$image->send(ImageType::PNG);
Formate
Unterstützte Formate sind JPEG, PNG, GIF, WebP, AVIF, und BMP. Sie müssen jedoch auch von Ihrer PHP-Version unterstützt werden, was mit der Funktion isTypeSupported() überprüft werden kann. Animationen werden nicht unterstützt.
Die Formate werden durch die Konstanten ImageType::JPEG
, ImageType::PNG
, ImageType::GIF
,
ImageType::WEBP
, ImageType::AVIF
, und ImageType::BMP
dargestellt.
$supported = Image::isTypeSupported(ImageType::JPEG);
Müssen Sie das Format eines Bildes beim Laden erkennen? Die Methode gibt es im zweiten Parameter zurück:
$image = Image::fromFile('nette.jpg', $type);
Die eigentliche Erkennung ohne Laden des Bildes wird von Image::detectTypeFromFile()
durchgeführt.
Bildgröße ändern
Ein gängiger Vorgang ist die Größenänderung eines Bildes. Die aktuellen Abmessungen werden von den Methoden
getWidth()
und getHeight()
zurückgegeben.
Die Methode resize()
wird für die Größenänderung verwendet. Dies ist ein Beispiel für eine proportionale
Größenänderung, so dass sie 500×300 Pixel nicht überschreitet (entweder ist die Breite genau 500px oder die Höhe genau
300px, eine der Dimensionen wird berechnet, um das Seitenverhältnis beizubehalten):
$image->resize(500, 300);
Es ist möglich, nur eine Dimension festzulegen, und die zweite Dimension wird berechnet:
$image->resize(500, null); // Breite 500px, Höhe auto
$image->resize(null, 300); // Breite auto, Höhe 300px
Jedes Maß kann in Prozenten angegeben werden:
$image->resize('75%', 300); // 75 % × 300px
Das Verhalten von resize
kann durch die folgenden Flags beeinflusst werden. Alle außer
Image::Stretch
behalten das Seitenverhältnis bei.
Flagge | Beschreibung |
---|---|
Image::OrSmaller (Standard) |
Die resultierenden Abmessungen sind kleiner oder gleich den angegebenen |
Image::OrBigger |
füllt den Zielbereich aus und erweitert ihn möglicherweise in eine Richtung |
Image::Cover |
füllt den gesamten Bereich aus und schneidet ab, was darüber hinausgeht |
Image::ShrinkOnly |
skaliert nur nach unten (erweitert ein kleines Bild nicht) |
Image::Stretch |
behält das Seitenverhältnis nicht bei |
Die Flaggen werden als drittes Argument der Funktion übergeben:
$image->resize(500, 300, Image::OrBigger);
Flaggen können kombiniert werden:
$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);
Bilder können vertikal oder horizontal gespiegelt werden, indem eine der Dimensionen (oder beide) als negative Zahl angegeben wird:
$flipped = $image->resize(null, '-100%'); // vertikal spiegeln
$flipped = $image->resize('-100%', '-100%'); // Drehen um 180°
$flipped = $image->resize(-125, 500); // Größe ändern und horizontal spiegeln
Nach der Verkleinerung des Bildes können wir es durch Schärfen verbessern:
$image->sharpen();
Beschneiden
Die Methode crop()
wird für den Anbau verwendet:
$image->crop($left, $top, $width, $height);
Wie bei resize()
können alle Werte in Prozenten angegeben werden. Die Prozentsätze für $left
und
$top
werden aus dem verbleibenden Platz berechnet, ähnlich wie bei der CSS-Eigenschaft
background-position
:
$image->crop('100%', '50%', '80%', '80%');
Das Bild kann auch automatisch beschnitten werden, z. B. um schwarze Ränder abzuschneiden:
$image->cropAuto(IMG_CROP_BLACK);
Die Methode cropAuto()
ist eine Objektkapselung der Funktion imagecropauto()
, weitere Informationen
finden Sie in der zugehörigen Dokumentation.
Farben
Mit der Methode ImageColor::rgb()
können Sie eine Farbe anhand von Rot-, Grün- und Blauwerten (RGB) definieren.
Optional können Sie auch einen Transparenzwert angeben, der von 0 (völlig transparent) bis 1 (völlig undurchsichtig) reicht,
genau wie in CSS.
$color = ImageColor::rgb(255, 0, 0); // Red
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Semi-transparent blue
Mit der Methode ImageColor::hex()
können Sie eine Farbe im Hexadezimalformat definieren, ähnlich wie in CSS. Sie
unterstützt die Formate #rgb
, #rrggbb
, #rgba
und #rrggbbaa
:
$color = ImageColor::hex("#F00"); // Red
$transparentGreen = ImageColor::hex("#00FF0080"); // Semi-transparent green
Farben können auch in anderen Methoden verwendet werden, z. B. ellipse()
, fill()
, usw.
Zeichnen und Editieren
Sie können zeichnen, Sie können schreiben, Sie können alle PHP-Funktionen zur Bildmanipulation verwenden, siehe Übersicht der Methoden, aber in einem objektorientierten Wrapper:
$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));
Da PHP-Funktionen zum Zeichnen von Rechtecken aufgrund der Angabe von Koordinaten unpraktisch sind, bietet die Klasse
Image
deren Ersatz in Form der Funktionen rectangleWH() und filledRectangleWH().
Mehrere Bilder zusammenführen
Sie können problemlos ein anderes Bild in das Bild einfügen:
$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210));
// Koordinaten können auch in Prozent angegeben werden
$blank->place($logo, '80%', '80%'); // in der Nähe der rechten unteren Ecke
Beim Einfügen wird der Alphakanal beachtet, außerdem können wir die Transparenz des eingefügten Bildes beeinflussen (wir werden ein sogenanntes Wasserzeichen erstellen):
$blank->place($image, '80%', '80%', 25); // Transparenz beträgt 25 %
Eine solche API ist wirklich ein Vergnügen, nicht wahr?
Überblick über die Methoden
static fromBlank(int $width, int $height, ?ImageColor $color=null): Image
Erzeugt ein neues Echtfarbbild mit den angegebenen Abmessungen. Die Standardfarbe ist Schwarz.
static fromFile(string $file, int &$detectedFormat=null): Image
Liest ein Bild aus einer Datei und gibt seinen Typ in $detectedFormat
zurück.
static fromString(string $s, int &$detectedFormat=null): Image
Liest ein Bild aus einer Zeichenkette und gibt dessen Typ in $detectedFormat
zurück.
static rgb(int $red, int $green, int $blue, int $transparency=0): array
Diese Funktion wurde durch die Klasse ImageColor
ersetzt, siehe Farben.
static typeToExtension(int $type): string
Gibt die Dateierweiterung für den angegebenen Typ zurück.
static typeToMimeType(int $type): string
Gibt den Mime-Typ für den angegebenen Typ zurück.
static extensionToType(string $extension): int
Gibt den Bildtyp entsprechend der Dateierweiterung zurück.
static detectTypeFromFile(string $file, int &$width=null, int &$height=null): ?int
Gibt den Typ der Bilddatei und in den Parametern $width
und $height
auch
die Abmessungen zurück.
static detectTypeFromString(string $s, int &$width=null, int &$height=null): ?int
Gibt den Typ des Bildes aus der Zeichenkette zurück und in den Parametern $width
und
$height
auch seine Abmessungen.
static isTypeSupported(int $type): bool
Ermittelt, ob der angegebene Bildtyp unterstützt wird.
static getSupportedTypes(): array
Gibt ein Array der unterstützten Bildtypen zurück (Konstanten ImageType::XXX
).
static calculateTextBox(string $text, string $fontFile, float $size, float $angle=0, array $options=[]): array
Berechnet die Abmessungen des Rechtecks, das den Text in einer bestimmten Schriftart und -größe umschließt. Sie gibt ein
assoziatives Array zurück, das die Schlüssel left
, top
, width
, height
enthält. Der linke Rand kann negativ sein, wenn der Text mit einem linken Überhang beginnt.
affine(array $affine, ?array $clip=null): Image
Gibt ein Bild zurück, das das affin transformierte Ausgangsbild enthält, wobei ein optionaler Beschneidungsbereich verwendet wird. (mehr).
affineMatrixConcat(array $m1, array $m2): array
Gibt die Verkettung von zwei affinen Transformationsmatrizen zurück, was nützlich ist, wenn mehrere Transformationen in einem Durchgang auf dasselbe Bild angewendet werden sollen. (mehr)
affineMatrixGet(int $type, ?mixed $options=null): array
Gibt eine affine Transformationsmatrix zurück. (mehr)
alphaBlending(bool $on): void
Ermöglicht zwei verschiedene Arten des Zeichnens auf Truecolor-Bildern. Im Überblendungsmodus bestimmt die
Alphakanalkomponente der Farbe, die allen Zeichenfunktionen wie setPixel()
zugeführt wird, wie viel von der
Grundfarbe durchscheinen darf. Dadurch wird die vorhandene Farbe an dieser Stelle automatisch mit der Zeichenfarbe gemischt und
das Ergebnis im Bild gespeichert. Das resultierende Pixel ist undurchsichtig. Im Nichtüberblendungsmodus wird die Zeichenfarbe
buchstäblich mit ihren Alphakanalinformationen kopiert und das Zielpixel ersetzt. Der Überblendungsmodus ist beim Zeichnen auf
Palettenbildern nicht verfügbar. (mehr)
antialias(bool $on): void
Aktivieren Sie die Methoden zum schnellen Zeichnen von Linien und verdrahteten Polygonen mit Antialiasing. Es unterstützt keine Alpha-Komponenten. Sie arbeitet mit einem direkten Mischvorgang. Es funktioniert nur mit Truecolor-Bildern.
Die Verwendung von Primitiven mit Antialiasing und transparenter Hintergrundfarbe kann zu unerwarteten Ergebnissen führen. Bei der Mischmethode wird die Hintergrundfarbe wie jede andere Farbe verwendet. Die fehlende Unterstützung von Alphakomponenten erlaubt keine alphabasierte Antialiasing-Methode. (mehr)
arc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color): void
Zeichnet einen Kreisbogen, dessen Mittelpunkt die angegebenen Koordinaten sind. (mehr)
colorAllocate(int $red, int $green, int $blue): int
Gibt einen Farbbezeichner zurück, der die aus den angegebenen RGB-Komponenten zusammengesetzte Farbe darstellt. Sie muss aufgerufen werden, um jede Farbe, die im Bild verwendet werden soll, zu erzeugen. (mehr)
colorAllocateAlpha(int $red, int $green, int $blue, int $alpha): int
Verhält sich identisch zu colorAllocate()
mit dem Zusatz des Transparenzparameters $alpha
. (mehr)
colorAt(int $x, int $y): int
Gibt den Index der Farbe des Pixels an der angegebenen Stelle im Bild zurück. Handelt es sich bei dem Bild um ein Truecolour-Bild, gibt diese Funktion den RGB-Wert dieses Pixels als Ganzzahl zurück. Verwenden Sie Bit-Shifting und Maskierung, um auf die unterschiedlichen Werte der roten, grünen und blauen Komponenten zuzugreifen: (mehr)
colorClosest(int $red, int $green, int $blue): int
Gibt den Index der Farbe in der Palette des Bildes zurück, die dem angegebenen RGB-Wert „am nächsten“ ist. Der „Abstand“ zwischen der gewünschten Farbe und jeder Farbe in der Palette wird berechnet, als ob die RGB-Werte Punkte im dreidimensionalen Raum darstellen würden. (mehr)
colorClosestAlpha(int $red, int $green, int $blue, int $alpha): int
Gibt den Index der Farbe in der Palette des Bildes zurück, die dem angegebenen RGB-Wert und der Stufe $alpha
am
nächsten kommt. (mehr)
colorClosestHWB(int $red, int $green, int $blue): int
Ermittelt den Index der Farbe, deren Farbton, Weiß und Schwärze der angegebenen Farbe am nächsten kommt. (mehr)
colorDeallocate(int $color): void
Hebt die Zuweisung einer Farbe auf, die zuvor mit colorAllocate()
oder colorAllocateAlpha()
zugewiesen wurde. (mehr)
colorExact(int $red, int $green, int $blue): int
Gibt den Index der angegebenen Farbe in der Palette des Bildes zurück. (mehr)
colorExactAlpha(int $red, int $green, int $blue, int $alpha): int
Gibt den Index der angegebenen Farbe+Alpha in der Palette des Bildes zurück. (mehr)
colorMatch(Image $image2): void
Bringt die Farben der Palettenversion eines Bildes näher an die Echtfarbenversion heran. (mehr)
colorResolve(int $red, int $green, int $blue): int
Gibt einen Farbindex für eine angeforderte Farbe zurück, entweder die genaue Farbe oder die nächstmögliche Alternative. (mehr)
colorResolveAlpha(int $red, int $green, int $blue, int $alpha): int
Gibt einen Farbindex für eine angeforderte Farbe zurück, entweder die genaue Farbe oder die nächstmögliche Alternative. (mehr)
colorSet(int $index, int $red, int $green, int $blue): void
Damit wird der angegebene Index in der Palette auf die angegebene Farbe gesetzt. (mehr)
colorsForIndex(int $index): array
Ermittelt die Farbe für einen bestimmten Index. (mehr)
colorsTotal(): int
Gibt die Anzahl der Farben in einer Bildpalette zurück (mehr).
colorTransparent(?int $color=null): int
Liest oder setzt die transparente Farbe des Bildes. (mehr)
convolution(array $matrix, float $div, float $offset): void
Wendet eine Faltungsmatrix auf das Bild an, wobei der angegebene Koeffizient und Versatz verwendet wird. (mehr)
Erfordert GD-Erweiterung, daher ist nicht sicher, dass sie überall funktioniert.
copy(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH): void
Kopiert einen Teil von $src
auf das Bild, beginnend bei den Koordinaten $srcX
, $srcY
mit
einer Breite von $srcW
und einer Höhe von $srcH
. Der definierte Teil wird auf die Koordinaten
$dstX
und $dstY
kopiert. (mehr)
copyMerge(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Kopiert einen Teil von $src
auf das Bild, beginnend bei den Koordinaten $srcX
, $srcY
mit
einer Breite von $srcW
und einer Höhe von $srcH
. Der definierte Teil wird auf die Koordinaten
$dstX
und $dstY
kopiert. (mehr)
copyMergeGray(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $srcW, int $srcH, int $opacity): void
Kopiert einen Teil von $src
auf das Bild, beginnend bei den Koordinaten $srcX
, $srcY
mit
einer Breite von $srcW
und einer Höhe von $srcH
. Der definierte Teil wird auf die Koordinaten
$dstX
und $dstY
kopiert.
Diese Funktion ist identisch mit copyMerge()
, mit dem Unterschied, dass sie beim Zusammenführen den Farbton der
Quelle beibehält, indem sie die Zielpixel vor dem Kopiervorgang in Graustufen umwandelt. (mehr)
copyResampled(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Kopiert einen rechteckigen Ausschnitt eines Bildes in ein anderes Bild, wobei die Pixelwerte gleichmäßig interpoliert werden, so dass insbesondere bei der Verkleinerung eines Bildes ein hohes Maß an Klarheit erhalten bleibt.
Mit anderen Worten: copyResampled()
nimmt einen rechteckigen Bereich von $src
mit der Breite
$srcW
und der Höhe $srcH
an der Position ($srcX
,$srcY
) und platziert ihn in
einem rechteckigen Bereich des Bildes mit der Breite $dstW
und der Höhe $dstH
an der Position
($dstX
,$dstY
).
Wenn Quell- und Zielkoordinaten sowie Breite und Höhe voneinander abweichen, wird das Bildfragment entsprechend gestreckt oder verkleinert. Die Koordinaten beziehen sich auf die linke obere Ecke. Diese Funktion kann zum Kopieren von Regionen innerhalb desselben Bildes verwendet werden, aber wenn sich die Regionen überschneiden, sind die Ergebnisse unvorhersehbar. (mehr)
copyResized(Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH): void
Kopiert einen rechteckigen Teil eines Bildes in ein anderes Bild. Mit anderen Worten: copyResized()
nimmt einen
rechteckigen Bereich von $src
mit der Breite $srcW
und der Höhe $srcH
an der Position
($srcX
,$srcY
) und platziert ihn in einem rechteckigen Bereich des Bildes mit der Breite
$dstW
und der Höhe $dstH
an der Position ($dstX
,$dstY
).
Wenn Quell- und Zielkoordinaten sowie Breite und Höhe voneinander abweichen, wird das Bildfragment entsprechend gestreckt oder verkleinert. Die Koordinaten beziehen sich auf die linke obere Ecke. Diese Funktion kann zum Kopieren von Regionen innerhalb desselben Bildes verwendet werden, aber wenn sich die Regionen überschneiden, sind die Ergebnisse unvorhersehbar. (mehr)
crop(int|string $left, int|string $top, int|string $width, int|string $height): Image
Beschneidet ein Bild auf den angegebenen rechteckigen Bereich. Die Abmessungen können als ganze Zahlen in Pixeln oder als
Strings in Prozent (z. B. '50%'
) übergeben werden.
cropAuto(int $mode=-1, float $threshold=.5, ?ImageColor $color=null): Image
Beschneidet ein Bild automatisch entsprechend der angegebenen $mode
. (mehr)
ellipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Zeichnet eine Ellipse, deren Mittelpunkt die angegebenen Koordinaten sind. (mehr)
fill(int $x, int $y, ImageColor $color): void
Führt eine Flutfüllung durch, beginnend an der angegebenen Koordinate (oben links ist 0, 0) mit der angegebenen
$color
im Bild. (mehr)
filledArc(int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style): void
Zeichnet einen Teilbogen, der auf die angegebene Koordinate im Bild zentriert ist. (mehr)
filledEllipse(int $centerX, int $centerY, int $width, int $height, ImageColor $color): void
Zeichnet eine Ellipse, deren Mittelpunkt die angegebene Koordinate im Bild ist. (mehr)
filledPolygon(array $points, ImageColor $color): void
Erzeugt ein gefülltes Polygon im $image. (mehr)
filledRectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Erzeugt ein mit $color
gefülltes Rechteck im Bild, das bei $x1
& $y1
beginnt und
bei $x2
& $y2
endet. Punkt 0, 0 ist die linke obere Ecke des Bildes. (mehr)
filledRectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Erzeugt ein mit $color
gefülltes Rechteck im Bild ausgehend von den Punkten $left
&
$top
mit der Breite $width
und der Höhe $height
. Der Punkt 0, 0 ist die linke obere Ecke
des Bildes.
fillToBorder(int $x, int $y, int $border, ImageColor $color): void
Führt eine Flutfüllung aus, deren Randfarbe durch $border
definiert ist. Der Startpunkt für die Füllung ist
$x
, $y
(oben links ist 0, 0) und der Bereich wird mit der Farbe $color
gefüllt. (mehr)
filter(int $filtertype, int …$args): void
Wendet den angegebenen Filter $filtertype
auf das Bild an. (mehr)
flip(int $mode): void
Spiegelt das Bild unter Verwendung der angegebenen $mode
. (mehr)
ftText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Schreiben Sie den Text in das Bild. (mehr)
gammaCorrect(float $inputgamma, float $outputgamma): void
Wendet eine Gammakorrektur auf das Bild an, das einen Eingabe- und einen Ausgabegammawert hat. (mehr)
getClip(): array
Ruft das aktuelle Beschneidungsrechteck ab, d.h. den Bereich, über den hinaus keine Pixel gezeichnet werden. (mehr)
getHeight(): int
Gibt die Höhe des Bildes zurück.
getImageResource(): resource|GdImage
Gibt die ursprüngliche Ressource zurück.
getWidth(): int
Gibt die Breite des Bildes zurück.
interlace(?int $interlace=null): int
Schaltet das Zeilensprungbit ein oder aus. Wenn das Interlace-Bit gesetzt ist und das Bild als JPEG-Bild verwendet wird, wird das Bild als progressives JPEG erstellt. (mehr)
isTrueColor(): bool
Findet heraus, ob das Bild eine Truecolor-Farbe ist. (mehr)
layerEffect(int $effect): void
Setzen Sie das Alpha-Blending-Flag, um Überlagerungseffekte zu verwenden. (mehr)
line(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Zeichnet eine Linie zwischen den beiden angegebenen Punkten. (mehr)
openPolygon(array $points, ImageColor $color): void
Zeichnet ein offenes Polygon auf das Bild. Im Gegensatz zu polygon()
wird keine Linie zwischen dem letzten und dem
ersten Punkt gezogen. (mehr)
paletteCopy(Image $source): void
Kopiert die Palette von $source
in das Bild. (mehr)
paletteToTrueColor(): void
Konvertiert ein palettenbasiertes Bild, das mit Funktionen wie create()
erstellt wurde, in ein Echtfarbbild, wie
createtruecolor()
. (mehr)
place(Image $image, int|string $left=0, int|string $top=0, int $opacity=100): Image
Kopiert $image
in das Bild an den Koordinaten $left
und $top
. Die Koordinaten können
als ganze Zahlen in Pixeln oder als Zeichenketten in Prozent übergeben werden (z. B. '50%'
).
polygon(array $points, ImageColor $color): void
Erzeugt ein Polygon im Bild. (mehr)
rectangle(int $x1, int $y1, int $x2, int $y2, ImageColor $color): void
Erzeugt ein Rechteck, das an den angegebenen Koordinaten beginnt. (mehr)
rectangleWH(int $left, int $top, int $width, int $height, ImageColor $color): void
Erzeugt ein Rechteck mit den angegebenen Koordinaten.
resize(int|string $width, int|string $height, int $flags=Image::OrSmaller): Image
Skaliert ein Bild, siehe weitere Informationen. Die Abmessungen können als ganze Zahlen in
Pixeln oder als Strings in Prozent (z. B. '50%'
) übergeben werden.
resolution(?int $resX=null, ?int $resY=null): mixed
Ermöglicht das Einstellen und Abrufen der Auflösung eines Bildes in DPI (dots per inch). Wenn keiner der optionalen Parameter
angegeben wird, wird die aktuelle Auflösung als indiziertes Array zurückgegeben. Wenn nur $resX
angegeben wird,
werden die horizontale und vertikale Auflösung auf diesen Wert gesetzt. Wenn beide optionalen Parameter angegeben werden, werden
die horizontale und vertikale Auflösung auf diese Werte gesetzt.
Die Auflösung wird nur als Metainformation verwendet, wenn Bilder aus Formaten gelesen und in Formate geschrieben werden, die diese Art von Information unterstützen (derzeit PNG und JPEG). Sie hat keinen Einfluss auf die Zeichenoperationen. Die Standardauflösung für neue Bilder beträgt 96 DPI. (mehr)
rotate(float $angle, int $backgroundColor): Image
Dreht das Bild unter Verwendung der angegebenen $angle
in Grad. Das Zentrum der Drehung ist die Mitte des Bildes,
und das gedrehte Bild kann andere Abmessungen als das Originalbild haben. (mehr)
Erfordert GD-Erweiterung, daher ist nicht sicher, dass sie überall funktioniert.
save(string $file, ?int $quality=null, ?int $type=null): void
Speichert ein Bild in einer Datei.
Die Kompressionsqualität liegt im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) und
0..9 für PNG (Standard 9). Wenn der Typ nicht aus der Dateierweiterung ersichtlich ist, können Sie ihn mit einer der Konstanten
ImageType
angeben.
saveAlpha(bool $saveflag): void
Legt fest, ob beim Speichern von PNG-Bildern die vollständige Alphakanal-Information (im Gegensatz zur einfarbigen Transparenz) erhalten bleiben soll.
Alphablending muss deaktiviert werden (alphaBlending(false)
), damit der Alphakanal überhaupt erhalten bleibt. (mehr)
scale(int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED): Image
Skaliert ein Bild unter Verwendung des angegebenen Interpolationsalgorithmus. (mehr)
send(int $type=ImageType::JPEG, ?int $quality=null): void
Gibt ein Bild an den Browser aus.
Die Kompressionsqualität liegt im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) und 0..9 für PNG (Standard 9).
setBrush(Image $brush): void
Legt das Pinselbild fest, das von allen Funktionen zum Zeichnen von Linien (z. B. line()
und
polygon()
) verwendet wird, wenn mit den Sonderfarben IMG_COLOR_BRUSHED oder IMG_COLOR_STYLEDBRUSHED gezeichnet wird.
(mehr)
setClip(int $x1, int $y1, int $x2, int $y2): void
Legt das aktuelle Beschneidungsrechteck fest, d. h. den Bereich, über den hinaus keine Pixel gezeichnet werden. (mehr)
setInterpolation(int $method=IMG_BILINEAR_FIXED): void
Legt die Interpolationsmethode fest, die sich auf die Methoden rotate()
und affine()
auswirkt. (mehr)
setPixel(int $x, int $y, ImageColor $color): void
Zeichnet ein Pixel an der angegebenen Koordinate. (mehr |https://www.php.net/manual/en/function.imagesetpixel])
setStyle(array $style): void
Legt den Stil fest, der von allen Funktionen zum Zeichnen von Linien (z. B. line()
und polygon()
)
verwendet werden soll, wenn mit der speziellen Farbe IMG_COLOR_STYLED oder Linien von Bildern mit der Farbe
IMG_COLOR_STYLEDBRUSHED gezeichnet wird. (mehr)
setThickness(int $thickness): void
Setzt die Dicke der Linien, die beim Zeichnen von Rechtecken, Polygonen, Bögen usw. gezeichnet werden, auf
$thickness
Pixel. (mehr)
setTile(Image $tile): void
Legt das Kachelbild fest, das von allen Funktionen zum Füllen von Regionen (z. B. fill()
und
filledPolygon()
) beim Füllen mit der Sonderfarbe IMG_COLOR_TILED verwendet wird.
Eine Kachel ist ein Bild, das dazu dient, einen Bereich mit einem sich wiederholenden Muster zu füllen. Jedes Bild kann als
Kachel verwendet werden, und durch Einstellen des transparenten Farbindex des Kachelbildes mit colorTransparent()
kann eine Kachel erstellt werden, die bestimmte Teile des darunter liegenden Bereichs durchscheinen lässt. (mehr)
sharpen(): Image
Schärft das Bild ein wenig.
Erfordert GD-Erweiterung, daher ist nicht sicher, dass sie überall funktioniert.
toString(int $type=ImageType::JPEG, ?int $quality=null): string
Gibt ein Bild als String aus.
Die Kompressionsqualität liegt im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) und 0..9 für PNG (Standard 9).
trueColorToPalette(bool $dither, int $ncolors): void
Konvertiert ein Truecolor-Bild in ein Palettenbild. (mehr)
ttfText(float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[]): array
Schreibt den angegebenen Text in das Bild. (mehr)