Arbeiten mit Bildern

Die Klasse Nette\Utils\Image vereinfacht Bildmanipulationen wie Größenänderung, Zuschneiden, Schärfen, Zeichnen oder das Zusammenfügen mehrerer Bilder.

PHP verfügt über eine umfangreiche Sammlung von Funktionen zur Bildmanipulation. Ihre API ist jedoch nicht sehr komfortabel. Es wäre nicht das Nette Framework, wenn es nicht eine elegante API dafür anbieten würde.

Installation:

composer require nette/utils

Alle Beispiele setzen voraus, dass die folgenden Aliase definiert wurden:

use Nette\Utils\Image;
use Nette\Utils\ImageColor;
use Nette\Utils\ImageType;

Erstellung eines Bildes

Wir erstellen ein neues True-Color-Bild, beispielsweise mit den Abmessungen 100×200:

$image = Image::fromBlank(100, 200);

Optional kann eine Hintergrundfarbe angegeben werden (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 des Bildes

Das Bild kann in eine Datei gespeichert werden:

$image->save('resampled.jpg');

Wir können die Kompressionsqualität angeben: im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) sowie im Bereich 0..9 für PNG (Standard 9):

$image->save('resampled.jpg', 80); // JPEG, Qualität 80%

Wenn das Format aus der Dateiendung nicht ersichtlich ist, kann es explizit mit einer Konstante angegeben werden:

$image->save('resampled.tmp', null, ImageType::JPEG);

Das Bild kann statt auf die Festplatte auch in eine Variable geschrieben werden:

$data = $image->toString(ImageType::JPEG, 80); // JPEG, Qualität 80%

oder direkt an den Browser gesendet werden, wobei der entsprechende HTTP-Header Content-Type gesetzt wird:

// sendet den Header 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-Installation unterstützt werden, was Sie mit der Methode isTypeSupported() überprüfen können. Animierte Bilder werden nicht unterstützt.

Die Formate werden durch die Konstanten ImageType::JPEG, ImageType::PNG, ImageType::GIF, ImageType::WEBP, ImageType::AVIF und ImageType::BMP repräsentiert.

$supported = Image::isTypeSupported(ImageType::JPEG);

Müssen Sie das Bildformat beim Laden erkennen? Die Methode gibt es im zweiten Parameter zurück:

$image = Image::fromFile('nette.jpg', $type);

Die reine Formaterkennung ohne Laden des Bildes erfolgt durch Image::detectTypeFromFile().

Größenänderung

Eine häufige Operation ist die Änderung der Bildgröße. Die aktuellen Abmessungen werden von den Methoden getWidth() und getHeight() zurückgegeben.

Zur Größenänderung dient die Methode resize(). Beispiel für eine proportionale Größenänderung, sodass die Dimensionen 500×300 Pixel nicht überschritten werden (entweder wird die Breite genau 500 px oder die Höhe genau 300 px; die jeweils andere Dimension wird so berechnet, dass das Seitenverhältnis erhalten bleibt):

$image->resize(500, 300);

Es ist möglich, nur eine Dimension anzugeben; die andere wird dann berechnet:

$image->resize(500, null); // Breite 500px, Höhe wird berechnet

$image->resize(null, 300); // Breite wird berechnet, Höhe 300px

Jede Dimension kann auch in Prozent angegeben werden:

$image->resize('75%', 300); // 75 % × 300px

Das Verhalten von resize() kann durch die folgenden Flags beeinflusst werden. Alle Flags außer Image::Stretch erhalten das Seitenverhältnis.

Flag Beschreibung
Image::OrSmaller (Standard) Die resultierenden Abmessungen sind kleiner oder gleich den angeforderten Abmessungen
Image::OrBigger Füllt (und überschreitet möglicherweise in einer Dimension) die Zielfläche
Image::Cover Füllt die Zielfläche und schneidet ab, was übersteht
Image::ShrinkOnly Nur Verkleinerung (verhindert das Strecken eines kleinen Bildes)
Image::Stretch Seitenverhältnis nicht beibehalten

Die Flags werden als drittes Argument der Methode übergeben:

$image->resize(500, 300, Image::OrBigger);

Die Flags können kombiniert werden:

$image->resize(500, 300, Image::ShrinkOnly | Image::Stretch);

Bilder können vertikal oder horizontal gespiegelt werden, indem eine oder beide Dimensionen als negative Zahl angegeben werden:

$flipped = $image->resize(null, '-100%'); // vertikal spiegeln

$flipped = $image->resize('-100%', '-100%'); // um 180° drehen

$flipped = $image->resize(-125, 500); // Größe ändern & horizontal spiegeln

Nach dem Verkleinern kann das Aussehen des Bildes durch leichtes Nachschärfen verbessert werden:

$image->sharpen();

Zuschneiden

Zum Zuschneiden dient die Methode crop():

$image->crop($left, $top, $width, $height);

Ähnlich wie bei resize() können alle Werte in Prozent angegeben werden. Prozentangaben für $left und $top beziehen sich auf den verbleibenden Platz, ähnlich der CSS-Eigenschaft background-position:

$image->crop('100%', '50%', '80%', '80%');

Das Bild kann auch automatisch zugeschnitten werden, beispielsweise um schwarze Ränder zu entfernen:

$image->cropAuto(IMG_CROP_BLACK);

Die Methode cropAuto() ist der objektorientierte Ersatz für die Funktion imagecropauto(). Weitere Informationen finden Sie in deren Dokumentation.

Farben

Die Methode ImageColor::rgb() ermöglicht die Definition einer Farbe mittels Rot-, Grün- und Blauwerten (RGB). Optional kann auch ein Transparenzwert im Bereich von 0 (vollständig transparent) bis 1 (vollständig undurchsichtig) angegeben werden, genau wie in CSS.

$color = ImageColor::rgb(255, 0, 0); // Rot
$transparentBlue = ImageColor::rgb(0, 0, 255, 0.5); // Halbdurchsichtiges Blau

Die Methode ImageColor::hex() ermöglicht die Definition einer Farbe im Hexadezimalformat, ähnlich wie in CSS. Sie unterstützt die Formate #rgb, #rrggbb, #rgba und #rrggbbaa:

$color = ImageColor::hex("#F00"); // Rot
$transparentGreen = ImageColor::hex("#00FF0080"); // Halbdurchsichtiges Grün

Die Farben können in anderen Methoden wie ellipse(), fill() usw. verwendet werden.

Zeichnen und Bearbeiten

Ihnen stehen alle PHP-Funktionen zur Bildbearbeitung zur Verfügung (siehe Methodenübersicht), jedoch in einer objektorientierten Kapselung:

$image->filledEllipse($centerX, $centerY, $width, $height, ImageColor::rgb(255, 0, 0));

Da die nativen PHP-Funktionen zum Zeichnen von Rechtecken aufgrund der Parameter für die Koordinaten unpraktisch sind, bietet die Image-Klasse Alternativen in Form der Methoden rectangleWH() und filledRectangleWH().

Zusammenfügen mehrerer Bilder

Ein anderes Bild kann leicht in das aktuelle Bild eingefügt werden:

$logo = Image::fromFile('logo.png');
$blank = Image::fromBlank(320, 240, ImageColor::rgb(52, 132, 210)); // Blaues Bild

// Koordinaten können wieder in Prozent angegeben werden
$blank->place($logo, '80%', '80%'); // fügt das Logo nahe der rechten unteren Ecke ein

Beim Einfügen wird der Alphakanal berücksichtigt. Zusätzlich kann die Transparenz des eingefügten Bildes beeinflusst werden (um z.B. ein Wasserzeichen zu erstellen):

$blank->place($image, '80%', '80%', 25); // Transparenz beträgt 25 %

Eine solche API macht wirklich Freude!

Methodenübersicht

static fromBlank (int $width, int $height, ?ImageColor $color=null)Image

Erstellt ein neues True-Color-Bild mit den angegebenen Abmessungen ($width, $height) und optionaler Hintergrundfarbe $color. Die Standardfarbe ist Schwarz.

static fromFile (string $file, int &$detectedFormat=null)Image

Lädt ein Bild aus einer Datei $file und gibt optional dessen Typ in $detectedFormat zurück.

static fromString (string $s, int &$detectedFormat=null)Image

Lädt ein Bild aus einem String $s und gibt optional dessen Typ in $detectedFormat zurück.

static rgb (int $red, int $green, int $blue, int $transparency=0)array

Diese Methode wurde durch die Klasse ImageColor ersetzt, siehe Farben.

static typeToExtension (int $type)string

Gibt die Dateiendung für den angegebenen Typ zurück (z.B. .jpg).

static typeToMimeType (int $type)string

Gibt den MIME-Typ für den angegebenen Typ zurück (z.B. image/jpeg).

static extensionToType (string $extension)int

Gibt den Typ des Bildes anhand der Dateiendung $extension zurück.

static detectTypeFromFile (string $file, int &$width=null, int &$height=null)?int

Gibt den Typ des Bildes aus der Datei $file zurück und optional dessen Abmessungen in den Parametern $width und $height.

static detectTypeFromString (string $s, int &$width=null, int &$height=null)?int

Gibt den Typ des Bildes aus einem String $s zurück und optional dessen Abmessungen in den Parametern $width und $height.

static isTypeSupported (int $type)bool

Prüft, ob der angegebene Typ des Bildes von der aktuellen PHP-Installation unterstützt wird.

static getSupportedTypes(): array

Gibt ein Array der unterstützten Bildtypen zurück.

static calculateTextBox (string $text, string $fontFile, float $size, float $angle=0, array $options=[])array

Berechnet die Abmessungen des Rechtecks, das den Text $text in einer bestimmten Schriftart ($fontFile), Größe ($size) und Winkel ($angle) umschließt. Gibt ein assoziatives Array zurück, das die Schlüssel left, top, width und height enthält. Der linke Rand (left) kann negativ sein, wenn der Text links überhängt (Kerning).

affine (array $affine, ?array $clip=null)Image

Gibt ein Bild zurück, das das affin transformierte Quellbild enthält, optional mit einem Zuschneidebereich. (mehr).

affineMatrixConcat (array $m1, array $m2)array

Gibt die Verkettung zweier affiner Transformationsmatrizen zurück, was nützlich ist, wenn mehrere Transformationen gleichzeitig 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 Zeichenmodi in Truecolor-Bildern. Im Blending-Modus bestimmt die Alpha-Komponente der Farbe, die in allen Zeichenfunktionen wie setPixel() verwendet wird, inwieweit die darunterliegende Farbe durchscheinen darf. Als Ergebnis wird die vorhandene Farbe an diesem Punkt automatisch mit der gezeichneten Farbe gemischt und das Ergebnis im Bild gespeichert. Das resultierende Pixel ist undurchsichtig. Im Modus ohne Blending wird die gezeichnete Farbe buchstäblich mit ihren Alphakanal-Informationen kopiert und ersetzt das Zielpixel. Der Blending-Modus ist beim Zeichnen auf Palettenbildern nicht verfügbar. (mehr)

antialias (bool $on): void

Aktiviert das Zeichnen von geglätteten Linien und Polygonen. Unterstützt keine Alphakanäle. Funktioniert nur bei Truecolor-Bildern.

Die Verwendung von antialiased Primitiven mit einer transparenten Hintergrundfarbe kann zu unerwarteten Ergebnissen führen. Die Blending-Methode verwendet die Hintergrundfarbe wie alle anderen Farben. (mehr)

arc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color)void

Zeichnet einen Kreisbogen mit dem Mittelpunkt an den angegebenen Koordinaten. (mehr)

colorAllocate (int $red, int $green, int $blue)int

Gibt einen Farbidentifikator zurück, der die aus den angegebenen RGB-Komponenten zusammengesetzte Farbe darstellt. Muss für jede Farbe aufgerufen werden, die im Bild verwendet werden soll. (mehr)

colorAllocateAlpha (int $red, int $green, int $blue, int $alpha)int

Verhält sich genauso wie colorAllocate() mit dem zusätzlichen Transparenzparameter $alpha. (mehr)

colorAt (int $x, int $y)int

Gibt den Farbindex des Pixels an der angegebenen Stelle im Bild zurück. Wenn das Bild Truecolor ist, gibt diese Funktion den RGB-Wert dieses Pixels als Ganzzahl zurück. Verwenden Sie Bitshifting und Bitmaskierung, um auf die separaten Werte der Rot-, Grün- und Blau-Komponenten zuzugreifen: (mehr)

colorClosest (int $red, int $green, int $blue)int

Gibt den Index der Farbe in der Bildpalette 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 in einem dreidimensionalen Raum darstellen würden. (mehr)

colorClosestAlpha (int $red, int $green, int $blue, int $alpha)int

Gibt den Index der Farbe in der Bildpalette zurück, die dem angegebenen RGB-Wert und der $alpha-Ebene „am nächsten“ ist. (mehr)

colorClosestHWB (int $red, int $green, int $blue)int

Ruft den Index der Farbe ab, die den Farbton, Weiß und Schwarz der angegebenen Farbe am nächsten kommt. (mehr)

colorDeallocate (int $color)void

Gibt eine Farbe frei, 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 Bildpalette zurück. (mehr)

colorExactAlpha (int $red, int $green, int $blue, int $alpha)int

Gibt den Index der angegebenen Farbe + Alpha in der Bildpalette zurück. (mehr)

colorMatch (Image $image2)void

Passt die Farben der Palette an das zweite Bild an. (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

Setzt den angegebenen Index in der Palette auf die angegebene Farbe. (mehr)

colorsForIndex (int $index)array

Ruft die Farbe des angegebenen Index ab. (mehr)

colorsTotal(): int

Gibt die Anzahl der Farben in der Bildpalette zurück. (mehr)

colorTransparent (?int $color=null)int

Ruft die transparente Farbe im Bild ab oder legt sie fest. (mehr)

convolution (array $matrix, float $div, float $offset)void

Wendet eine Faltungsmatrix auf das Bild an, unter Verwendung des angegebenen Koeffizienten und Offsets. (mehr)

Erfordert das Vorhandensein der Bundled GD extension, funktioniert also möglicherweise nicht überall.

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 der Breite $srcW und Höhe $srcH. Der definierte Teil wird an 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 der Breite $srcW und Höhe $srcH. Der definierte Teil wird an 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 der Breite $srcW und Höhe $srcH. Der definierte Teil wird an die Koordinaten $dstX und $dstY kopiert.

Diese Funktion ist identisch mit copyMerge() mit der Ausnahme, dass beim Zusammenführen der Farbton der Quelle erhalten bleibt, indem die Zielpixel vor dem Kopiervorgang in Graustufen konvertiert werden. (mehr)

copyResampled (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Kopiert einen rechteckigen Bereich von $src in das aktuelle Bild, wobei die Pixelwerte geglättet interpoliert werden. Dadurch bleibt insbesondere beim Verkleinern eine hohe Bildschärfe erhalten.

Anders ausgedrückt: copyResampled() nimmt einen rechteckigen Bereich aus $src mit Breite $srcW und Höhe $srcH an der Position ($srcX, $srcY) und platziert ihn in einen rechteckigen Bereich des Zielbildes mit Breite $dstW und Höhe $dstH an der Position ($dstX, $dstY).

Wenn sich Quell- und Zielkoordinaten sowie Breiten und Höhen unterscheiden, wird das Bildfragment entsprechend gestreckt oder gestaucht. Die Koordinaten beziehen sich auf die obere linke Ecke. Diese Methode kann zum Kopieren von Bereichen innerhalb desselben Bildes verwendet werden; wenn sich die Bereiche jedoch überlappen, sind die Ergebnisse nicht vorhersagbar. (mehr)

copyResized (Image $src, int $dstX, int $dstY, int $srcX, int $srcY, int $dstW, int $dstH, int $srcW, int $srcH)void

Kopiert einen rechteckigen Bereich von $src in das aktuelle Bild. Anders ausgedrückt: copyResized() nimmt einen rechteckigen Bereich aus $src mit Breite $srcW und Höhe $srcH an der Position ($srcX, $srcY) und platziert ihn in einen rechteckigen Bereich des Zielbildes mit Breite $dstW und Höhe $dstH an der Position ($dstX, $dstY).

Wenn sich Quell- und Zielkoordinaten sowie Breiten und Höhen unterscheiden, wird das Bildfragment entsprechend gestreckt oder gestaucht. Die Koordinaten beziehen sich auf die obere linke Ecke. Diese Methode kann zum Kopieren von Bereichen innerhalb desselben Bildes verwendet werden; wenn sich die Bereiche jedoch überlappen, sind die Ergebnisse nicht vorhersagbar. (mehr)

crop (int|string $left, int|string $top, int|string $width, int|string $height)Image

Schneidet das Bild auf den angegebenen rechteckigen Bereich zu. Die Abmessungen können als Integer in Pixeln oder als Strings in Prozent (z.B. '50%') angegeben werden.

cropAuto (int $mode=-1, float $threshold=.5, ?ImageColor $color=null)Image

Schneidet das Bild automatisch zu, basierend auf dem angegebenen $mode, $threshold und optional $color. (mehr)

ellipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Zeichnet eine Ellipse mit dem Mittelpunkt an den angegebenen Koordinaten. (mehr)

fill (int $x, int $y, ImageColor $color)void

Füllt einen Bereich beginnend bei den angegebenen Koordinaten (oben links ist 0, 0) mit der angegebenen $color. (mehr)

filledArc (int $centerX, int $centerY, int $width, int $height, int $startAngle, int $endAngle, ImageColor $color, int $style)void

Zeichnet einen Teilbogen mit dem Mittelpunkt an den angegebenen Koordinaten. (mehr)

filledEllipse (int $centerX, int $centerY, int $width, int $height, ImageColor $color)void

Zeichnet eine Ellipse mit dem Mittelpunkt an den angegebenen Koordinaten. (mehr)

filledPolygon (array $points, ImageColor $color)void

Erstellt ein gefülltes Polygon im Bild. (mehr)

filledRectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Erstellt ein mit $color gefülltes Rechteck im Bild, beginnend am Punkt $x1 & $y1 und endend am Punkt $x2 & $y2. Punkt 0, 0 ist die obere linke Ecke des Bildes. (mehr)

filledRectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Erstellt ein mit $color gefülltes Rechteck im Bild, beginnend am Punkt $left & $top mit der Breite $width und Höhe $height. Punkt 0, 0 ist die obere linke Ecke des Bildes.

fillToBorder (int $x, int $y, int $border, ImageColor $color)void

Führt eine Flutfüllung durch, deren Randfarbe mit $border definiert ist. Der Startpunkt der 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 entsprechend dem angegebenen $mode. (mehr)

ftText (float $size, float $angle, int $x, int $y, ImageColor $color, string $fontFile, string $text, array $options=[])array

Schreibt Text in das Bild. (mehr)

gammaCorrect (float $inputgamma, float $outputgamma)void

Wendet eine Gammakorrektur auf das Bild an, relativ zum Eingangs- und Ausgangsgamma. (mehr)

getClip(): array

Gibt den aktuellen Clipping-Bereich als Array mit den Koordinaten x1, y1, x2, y2 zurück. (mehr)

getHeight(): int

Gibt die Höhe des Bildes in Pixeln zurück.

getImageResource(): \GdImage|resource

Gibt die zugrundeliegende GD-Bildressource (resource oder GdImage-Objekt) zurück.

getWidth(): int

Gibt die Breite des Bildes in Pixeln zurück.

interlace (?int $interlace=null)int

Aktiviert oder deaktiviert den Interlace-Modus. Wenn der Interlace-Modus aktiviert ist und das Bild als JPEG gespeichert wird, wird es als progressives JPEG gespeichert. (mehr)

isTrueColor(): bool

Prüft, ob das Bild ein Truecolor-Bild ist. (mehr)

layerEffect (int $effect)void

Setzt das Alpha-Blending-Flag, um Layer-Effekte zu verwenden. (mehr)

line (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Zeichnet eine Linie zwischen zwei gegebenen 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 gezeichnet. (mehr)

paletteCopy (Image $source)void

Kopiert die Palette vom Quellbild ($source) in das aktuelle Bild. (mehr)

paletteToTrueColor(): void

Konvertiert ein palettenbasiertes Bild in ein Truecolor-Bild. (mehr)

place (Image $image, int|string $left=0, int|string $top=0, int $opacity=100)Image

Kopiert $image in das Bild an die Koordinaten $left und $top. Die Koordinaten können als Integer in Pixeln oder als Strings in Prozent (z.B. '50%') angegeben werden.

polygon (array $points, ImageColor $color)void

Erstellt ein Polygon im Bild. (mehr)

rectangle (int $x1, int $y1, int $x2, int $y2, ImageColor $color)void

Erstellt ein Rechteck an den angegebenen Koordinaten. (mehr)

rectangleWH (int $left, int $top, int $width, int $height, ImageColor $color)void

Erstellt ein Rechteck an den angegebenen Koordinaten.

resize (int|string $width, int|string $height, int $flags=Image::OrSmaller)Image

Ändert die Größe des Bildes, mehr Informationen. Die Abmessungen können als Integer in Pixeln oder als Strings in Prozent (z.B. '50%') angegeben werden.

resolution (?int $resX=null, ?int $resY=null)mixed

Setzt oder gibt die Auflösung des Bildes in DPI (dots per inch) zurück. 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 in Formaten gelesen und geschrieben werden, die diese Art von Informationen unterstützen (derzeit PNG und JPEG). Sie hat keinen Einfluss auf Zeichenoperationen. Die Standardauflösung neuer Bilder beträgt 96 DPI. (mehr)

rotate (float $angle, int $backgroundColor)Image

Dreht das Bild um den angegebenen $angle in Grad. Der Drehpunkt ist der Mittelpunkt des Bildes, und das gedrehte Bild kann andere Abmessungen haben als das Originalbild. (mehr)

Erfordert das Vorhandensein der Bundled GD extension, funktioniert also möglicherweise nicht überall.

save (string $file, ?int $quality=null, ?int $type=null)void

Speichert das 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 aus der Dateiendung nicht ersichtlich ist, können Sie ihn mit einer der ImageType-Konstanten angeben.

saveAlpha (bool $saveflag)void

Setzt das Flag, ob beim Speichern von PNG-Bildern die vollständigen Alphakanal-Informationen beibehalten werden sollen (im Gegensatz zu einfarbiger Transparenz).

Alphablending muss deaktiviert sein (alphaBlending(false)), damit der Alphakanal überhaupt erhalten bleibt. (mehr)

scale (int $newWidth, int $newHeight=-1, int $mode=IMG_BILINEAR_FIXED)Image

Skaliert das Bild unter Verwendung des angegebenen Interpolationsalgorithmus. (mehr)

send (int $type=ImageType::JPEG, ?int $quality=null)void

Gibt das 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 in allen Linienzeichnungsfunktionen (z. B. line() und polygon()) verwendet wird, wenn mit den speziellen Farben IMG_COLOR_BRUSHED oder IMG_COLOR_STYLEDBRUSHED gezeichnet wird. (mehr)

setClip (int $x1, int $y1, int $x2, int $y2)void

Legt den aktuellen Clipping-Bereich fest, d.h. den Bereich, außerhalb dessen keine Pixel gezeichnet werden. (mehr)

setInterpolation (int $method=IMG_BILINEAR_FIXED)void

Legt die Interpolationsmethode fest, die die Methoden rotate() und affine() beeinflusst. (mehr)

setPixel (int $x, int $y, ImageColor $color)void

Zeichnet ein Pixel an den angegebenen Koordinaten. (mehr)

setStyle (array $style)void

Legt den Stil fest, der von allen Linienzeichnungsfunktionen (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

Legt die Liniendicke beim Zeichnen von Rechtecken, Polygonen, Bögen usw. auf $thickness Pixel fest. (mehr)

setTile (Image $tile)void

Legt das Kachelbild fest, das in allen Bereichsfüllfunktionen (z. B. fill() und filledPolygon()) verwendet wird, wenn mit der speziellen Farbe IMG_COLOR_TILED gefüllt wird.

Eine Kachel ist ein Bild, das zum Füllen eines Bereichs mit einem sich wiederholenden Muster verwendet wird. Jedes Bild kann als Kachel verwendet werden, und durch Festlegen des transparenten Farbindex des Kachelbildes mit colorTransparent() kann eine Kachel erstellt werden, bei der bestimmte Teile des darunterliegenden Bereichs durchscheinen. (mehr)

sharpen(): Image

Schärft das Bild.

Erfordert das Vorhandensein der Bundled GD extension, funktioniert also möglicherweise nicht überall.

toString (int $type=ImageType::JPEG, ?int $quality=null)string

Speichert das Bild in einem String.

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

Gibt den angegebenen Text in das Bild aus. (mehr)

Version: 4.0