Arbeiten mit Bildern

Die Klasse Nette\Utils\Image vereinfacht die Manipulation von Bildern, 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. Aber ihre API ist nicht sehr komfortabel. Es wäre nicht das Nette Framework, wenn es nicht mit einer sexy API käme.

Installation:

composer require nette/utils

Alle Beispiele setzen voraus, dass ein Alias erstellt wurde:

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

Erstellung eines Bildes

Wir erstellen ein neues True-Color-Bild, zum Beispiel 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 im Bereich 0..100 für JPEG (Standard 85), WEBP (Standard 80) und AVIF (Standard 30) und 0..9 für PNG (Standard 9) angeben:

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

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

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

Das Bild kann anstatt 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 mit dem entsprechenden HTTP-Header Content-Type:

// sendet den Header Content-Type: image/png
$image->send(ImageType::PNG);

Formate

Unterstützte Formate sind JPEG, PNG, GIF, WebP, AVIF und BMP, allerdings müssen sie auch von Ihrer PHP-Version unterstützt werden, was Sie mit der Funktion isTypeSupported() überprüfen können. Animationen werden nicht unterstützt.

Das Format wird 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 beim Laden das Format des Bildes erkennen? Die Methode gibt es im zweiten Parameter zurück:

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

Die reine Erkennung ohne Laden des Bildes führt Image::detectTypeFromFile() durch.

Größenänderung

Eine häufige Operation ist die Änderung der Bildabmessungen. Die aktuellen Abmessungen geben die Methoden getWidth() und getHeight() zurück.

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

$image->resize(500, 300);

Es ist möglich, nur eine Dimension anzugeben, die andere wird 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 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 Funktion angegeben:

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

Flags 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%'); // um 180° drehen

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

Nach dem Verkleinern des Bildes kann sein Aussehen durch leichtes Schä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. Prozentsätze bei $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 zugeschnitten werden, zum Beispiel das Zuschneiden schwarzer Ränder:

$image->cropAuto(IMG_CROP_BLACK);

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

Farben

Die Methode ImageColor::rgb() ermöglicht es Ihnen, eine Farbe mithilfe der Werte Rot, Grün und Blau (RGB) zu definieren. Optional können Sie auch einen Transparenzwert im Bereich von 0 (vollständig transparent) bis 1 (vollständig undurchsichtig) angeben, also genauso 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 es Ihnen, eine Farbe im Hexadezimalformat zu definieren, ä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

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

Zeichnen und Bearbeiten

Du kannst zeichnen, du kannst schreiben, aber Blätter nicht zerreißen. Ihnen stehen alle PHP-Funktionen zur Bildbearbeitung zur Verfügung, siehe Methodenübersicht, jedoch im objektorientierten Gewand:

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

Da die PHP-Funktionen zum Zeichnen von Rechtecken aufgrund der Koordinatenbestimmung unpraktisch sind, bietet die Klasse Image deren Ersatz in Form der Funktionen rectangleWH() und filledRectangleWH().

Zusammenfügen mehrerer Bilder

In ein Bild kann leicht ein anderes Bild eingefügt werden:

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

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

Beim Einfügen wird der Alphakanal berücksichtigt, außerdem können wir die Transparenz des eingefügten Bildes beeinflussen (wir erstellen ein sogenanntes Wasserzeichen):

$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. Die Standardfarbe ist Schwarz.

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

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

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

Lädt ein Bild aus einem String und gibt seinen 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 Dateiendung 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 Typ des Bildes anhand der Dateiendung zurück.

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

Gibt den Typ des Bildes zurück und in den Parametern $width und $height auch dessen Abmessungen.

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

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

static isTypeSupported (int $type)bool

Stellt fest, ob der angegebene Typ des Bildes unterstützt wird.

static getSupportedTypes(): array

Gibt ein Array der unterstützten Typen von Bildern zurück.

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. Gibt ein assoziatives Array zurück, das die Schlüssel left, top, width, height enthält. Der linke Rand kann auch negativ sein, wenn der Text mit einem linken Unterschnitt beginnt.

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 Matrixtransformationsmatrix 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 Teil eines Bildes auf ein anderes Bild und interpoliert die Pixelwerte gleichmäßig, sodass insbesondere bei der Verkleinerung der Bildgröße eine hohe Klarheit erhalten bleibt.

Mit anderen Worten, copyResampled() nimmt einen rechteckigen Bereich aus $src der Breite $srcW und Höhe $srcH an der Position ($srcX, $srcY) und platziert ihn in einen rechteckigen Bereich des Bildes der Breite $dstW und Höhe $dstH an der Position ($dstX, $dstY).

Wenn sich die Quell- und Zielkoordinaten, Breite und Höhe unterscheiden, wird eine entsprechende Streckung oder Verkleinerung des Bildfragments durchgeführt. Die Koordinaten beziehen sich auf die obere linke Ecke. Diese Funktion kann zum Kopieren von Bereichen innerhalb desselben Bildes verwendet werden, aber wenn sich die Bereiche überlappen, sind die Ergebnisse nicht vorhersehbar. (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 auf ein anderes Bild. Mit anderen Worten, copyResized() nimmt einen rechteckigen Bereich aus $src der Breite $srcW und Höhe $srcH an der Position ($srcX, $srcY) und platziert ihn in einen rechteckigen Bereich des Bildes der Breite $dstW ] und Höhe $dstH an der Position ($dstX, $dstY).

Wenn sich die Quell- und Zielkoordinaten, Breite und Höhe unterscheiden, wird eine entsprechende Streckung oder Verkleinerung des Bildfragments durchgeführt. Die Koordinaten beziehen sich auf die obere linke Ecke. Diese Funktion kann zum Kopieren von Bereichen innerhalb desselben Bildes verwendet werden, aber wenn sich die Bereiche überlappen, sind die Ergebnisse nicht vorhersehbar. (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 entsprechend dem angegebenen $mode zu. (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 zurück, d.h. den Bereich, außerhalb dessen 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

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

Stellt fest, ob das Bild Truecolor 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 von $source in das 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