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)

Version: 4.0