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)