In PHP ist das Verarbeitungsbild -Zuschneiden ein sehr häufiger Bestandteil der Bildverarbeitungsaufgaben. Seit PHP 5.5.0 verfügt PHP über eine integrierte Bildungsfunktion, um einen Teil eines Bildes zu erstellen, das prägnanter und effizienter zu verwenden ist als das vorherige komplizierte manuelle Zuschneiden.
In diesem Artikel wird ausführlich eingeführt, wie die ImageCrop -Funktion korrekt verwendet wird, insbesondere wie die Koordinaten sowie die Breite und Höhenparameter festgelegt werden können, die während des Zuschneidens eingegeben werden, wodurch häufige Fehler und Fallen vermieden werden.
Der Prototyp der ImageCrop -Funktion lautet wie folgt:
imagecrop(GdImage $image, array $rect): ?GdImage
$ Bild : Die zu beschnittene Bildressource.
$ rect : Ein assoziatives Array, das die Koordinaten und Abmessungen des Ausschnittbereichs definiert, die die folgenden Schlüssel enthalten müssen:
X : Die horizontale Koordinate (in Pixeln, Ganzzahl) der oberen linken Ecke des Erntebereichs.
Y : Die vertikale Koordinate (in Pixeln, Ganzzahl) der oberen linken Ecke des Erntebereichs.
Breite : Die Breite des Erntebereichs (Pixel).
Höhe : Die Höhe des Erntebereichs (Pixel).
Wenn die Funktion erfolgreich ist, gibt sie die verkürzte neue Bildressource zurück, und wenn sie fehlschlägt, gibt sie false zurück.
Koordinaten (x, y)
Es zeigt die Position der oberen linken Ecke der Erntebox im Originalbild an. Die Koordinaten stammen aus der oberen linken Ecke als Ursprung (0,0), die x-Achse wächst nach rechts und die y-Achse wächst nach unten.
Breite und Höhe
Repräsentiert die Größe der Erntekiste in Pixeln. Muss eine positive Ganzzahl sein und kann den verbleibenden verfügbaren Bereich des Originalbildes nicht überschreiten.
Stellen Sie sicher, dass die Koordinaten und Größen die Grenze des Originalbildes <br> nicht überschreiten Wenn die Originalbildbreite beispielsweise $ imgwidth ist und die Höhe $ imgheeight ist, muss es erfüllt sein:
$x >= 0 && $y >= 0
$x + $width <= $imgWidth
$y + $height <= $imgHeight
Andernfalls schlägt die Anbaufläche fehl und gibt falsch zurück.
Der Parametertyp muss eine Ganzzahl sein <br> Nichtteger-Argumente können Fehler oder Ausnahmen verursachen.
Stellen Sie sicher, dass die Breite und Höhe des Erntebereichs größer als 0 sind
Wenn die Breite oder Höhe von 0 oder negativ ist, ist das Zuschneiden ungültig.
Angenommen, wir haben ein Bildbeispiel.jpg , ernte es aus Koordinaten (50, 30), 200 Pixel breit und 150 Pixel hoch.
<?php
// Laden Sie das Bild
$image = imagecreatefromjpeg('http://gitbox.net/example.jpg');
if (!$image) {
die('Das Bild nicht laden');
}
// Holen Sie sich die ursprüngliche Bildgröße
$imgWidth = imagesx($image);
$imgHeight = imagesy($image);
// Setzen Sie die Ernteparameter
$cropRect = [
'x' => 50,
'y' => 30,
'width' => 200,
'height' => 150,
];
// Stellen Sie fest, ob der Schneidbereich legal ist
if ($cropRect['x'] < 0 || $cropRect['y'] < 0 ||
$cropRect['x'] + $cropRect['width'] > $imgWidth ||
$cropRect['y'] + $cropRect['height'] > $imgHeight) {
die('Die Erntefläche übersteigt die Bildgrenze');
}
// Erntebilder
$cropped = imagecrop($image, $cropRect);
if ($cropped !== false) {
// Speichern Sie geschnittene Bilder
imagejpeg($cropped, 'cropped_example.jpg');
imagedestroy($cropped);
echo "Erfolgreicher Schnitt!";
} else {
echo "Anbaus fehlgeschlagen!";
}
// Ressourcen frei machen
imagedestroy($image);
?>
Die Anbausfläche übersteigt die Bildgrenze <br> Bewirkt, dass die ImageCrop falsch zurückgibt. Lösung: Erkennen und begrenzen Sie zuerst die Koordinaten und Dimensionsbereiche.
Breite oder Höhe oder Koordinaten sind negativ oder nicht integer <br> Verwenden Sie die Funktion intval (), um den richtigen Typ zu gewährleisten, bevor Sie den Parameter übergeben.
Die ursprüngliche Bildressource ist leer <br> Stellen Sie sicher, dass der Bildpfad korrekt ist und dass PHP die GD -Erweiterung aktiviert hat.
ImageCrop erfordert ein klares und korrektes Anschneiden rechteckiger Bereiche.
Die Koordinaten X und Y beziehen sich auf die obere linke Eckeposition, und die Breite und Höhe muss positive Ganzzahlen sein und nicht den ursprünglichen Bildbereich überschreiten.
Erwerben Sie die Bildgröße im Voraus, um die Legitimität der Anbausparameter zu überprüfen.
Achten Sie darauf, Fehler im Code zu überprüfen, um Programmausnahmen zu vermeiden.
Durch das korrekte Verständnis dieser Schlüsselpunkte können Sie die Bildfunktion in PHP effizient und stabil vervollständigen.