Start · Sprachen · PHP · Referenz · imagegetclip

imagegetclip

Funktion

Gibt das aktuell definierte Clipping-Rechteck eines GD-Bildes als Array mit vier Koordinaten zurück.

seit PHP 7.2.0 Kategorie: image

Signatur

imagegetclip(GdImage $image): array|false

Beschreibung

imagegetclip() liest das aktuell gesetzte Clipping-Rechteck eines GD-Bildes aus. Das Clipping-Rechteck begrenzt den Bereich, in dem Zeichenoperationen tatsächlich Auswirkungen haben – alle Pixel außerhalb dieses Rechtecks bleiben unverändert.

Die Funktion gibt ein Array mit vier Elementen zurück: die x- und y-Koordinaten der oberen linken Ecke sowie die x- und y-Koordinaten der unteren rechten Ecke des Clipping-Rechtecks. Diese Koordinaten werden in Pixeln angegeben.

Typischerweise wird imagegetclip() verwendet, um die aktuelle Clipping-Region zu sichern, bevor sie mit imagesetclip() verändert wird, damit sie anschließend wiederhergestellt werden kann. Das ist besonders nützlich, wenn mehrere Zeichenoperationen jeweils unterschiedliche Clipping-Bereiche benötigen.

Parameter

Name Typ Default Beschreibung
$image Pflicht GdImage Das GD-Bildobjekt, dessen aktuelles Clipping-Rechteck abgefragt werden soll. Wird typischerweise durch Funktionen wie imagecreatetruecolor() oder imagecreatefromjpeg() erzeugt.

Rückgabewert

Typ
array|false
Beschreibung
Gibt bei Erfolg ein Array mit vier Integer-Werten zurück: [x1, y1, x2, y2], wobei (x1, y1) die obere linke und (x2, y2) die untere rechte Ecke des Clipping-Rechtecks darstellen. Im Fehlerfall wird false zurückgegeben.

Beispiele

Aktuelles Clipping-Rechteck auslesen

<?php
// Neues Bild erstellen
$image = imagecreatetruecolor(400, 300);

// Clipping-Rechteck setzen
imagesetclip($image, 50, 50, 350, 250);

// Aktuelles Clipping-Rechteck auslesen
$clip = imagegetclip($image);

echo 'Clipping-Rechteck:' . PHP_EOL;
echo 'x1: ' . $clip[0] . ', y1: ' . $clip[1] . PHP_EOL;
echo 'x2: ' . $clip[2] . ', y2: ' . $clip[3] . PHP_EOL;

imagedestroy($image);
Clipping-Rechteck: x1: 50, y1: 50 x2: 350, y2: 250

Clipping-Rechteck sichern und wiederherstellen

<?php
$image = imagecreatetruecolor(500, 400);
$white = imagecolorallocate($image, 255, 255, 255);
$red   = imagecolorallocate($image, 255, 0, 0);
$blue  = imagecolorallocate($image, 0, 0, 255);

// Hintergrund füllen
imagefilledrectangle($image, 0, 0, 499, 399, $white);

// Ursprüngliches Clipping-Rechteck sichern
$originalClip = imagegetclip($image);

// Temporär ein neues Clipping-Rechteck setzen
imagesetclip($image, 100, 100, 300, 300);

// Nur innerhalb des Clipping-Bereichs zeichnen
imagefilledrectangle($image, 0, 0, 499, 399, $red);

// Ursprüngliches Clipping-Rechteck wiederherstellen
imagesetclip($image, $originalClip[0], $originalClip[1], $originalClip[2], $originalClip[3]);

// Nun wieder im vollen Bereich zeichnen
imagefilledellipse($image, 400, 350, 80, 80, $blue);

// Bild ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);

// Wichtig · Fallstricke

Wenn noch kein Clipping-Rechteck explizit gesetzt wurde, entsprechen die zurückgegebenen Koordinaten dem gesamten Bildbereich (also [0, 0, Breite-1, Höhe-1]).

Diese Funktion steht nur zur Verfügung, wenn PHP mit GD-Unterstützung kompiliert wurde. Ab PHP 8.0 ist der Ressource-Typ resource durch das Objekt GdImage ersetzt worden.