Bei der tatsächlichen Entwicklung der Bildverarbeitung ist das Zuschneiden eine übliche und notwendige Operation. Als wichtige Sprache für die Backend-Entwicklung bietet PHP auch mehrere pflanzenbezogene Funktionen, die beiden am häufigsten verwirrt sind ImageGetClip () und ImageCrop () . In diesem Artikel wird die Verwendung, funktionale Unterschiede und anwendbare Szenarien dieser beiden Funktionen gründlich vergleichen, um Entwicklern die Auswahl geeigneter Bildfassmethoden basierend auf bestimmten Anforderungen zu helfen.
ImageCrop () ist eine von PHP bereitgestellte Standardbildfunktion und wurde seit PHP 5.5 eingeführt. Sein grundlegender Zweck ist es, eine bestimmte Bildressource in einen bestimmten rechteckigen Bereich zu einem neuen Bild zu beschneiden.
Funktionsdefinition:
resource imagecrop(resource $image, array $rect)
Parameterbeschreibung:
$ Bild : Originalbildressource
$ rect : Ein Array, das den Anbaufungsbereich definiert, einschließlich X , Y , Breite , Höhe
Beispielcode:
$src = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
$crop = imagecrop($src, ['x' => 100, 'y' => 50, 'width' => 200, 'height' => 100]);
if ($crop !== FALSE) {
imagejpeg($crop, 'cropped.jpg');
}
ImageGetClip () ist eine weniger reduzierte Funktion. Es wird nicht wirklich verwendet, um den Bildinhalt zu "erfassen", sondern um das Ausschnittrechteck der aktuellen Bildressource zu erhalten. Dieser Ausschnittbereich wird verwendet, um den Umfang der Bildzeichnungsvorgänge zu begrenzen und ist Teil des Zeichnungskontexts.
Funktionsdefinition:
array imagegetclip(resource $im)
Beispielcode:
$im = imagecreatefrompng('https://gitbox.net/images/example.png');
$clip = imagegetclip($im);
print_r($clip);
Die Ausgabe kann sein:
Array
(
[x] => 0
[y] => 0
[width] => 400
[height] => 300
)
Dies zeigt an, dass die Zeichnungsbeschränkungsfläche des aktuellen Bildes (0,0)-(400.300) beträgt.
Funktion | ImageCrop | ImageGetClip |
---|---|---|
verwenden | Treffen Sie den Bildbereich und generieren Sie neue Bildressourcen | Holen Sie sich den aktuellen Bereich eingeschränkter Zeichnungsbereich (keine Änderung des Bildinhalts) |
Ob Sie den Bildinhalt ändern sollen | Ja | NEIN |
Ob Sie ein neues Bild generieren sollen | Ja | NEIN |
Eingeführte Version | Php 5.5 | PHP 5.6 |
Praktische operative Verwendung | Bildmedumbändergenerierung, Benutzer Avatar Cropping usw. | Kontexteinstellungen vor dem Zeichnen (kombiniert mit ImagebildClip) |
Viele Entwickler denken fälschlicherweise, dass ImageGetClip () auch Bilder wie ImageCrop () aufnehmen kann, wenn sie Anfänger sind. Tatsächlich ist dies ein falsches Verständnis. ImageGetClip () ist mehr in Verbindung mit Imagesetclip () , verwendet, um den Zeichnungsbeschränkungsbereich der aktuellen Bildressource festzulegen und zu erhalten, und ändert den tatsächlichen Bildinhalt nicht.
Wenn Ihre Anforderung "Ernte und einen Teil des Bildes speichern" ist, verwenden Sie ImageCrop () ohne zu zögern. Wenn Sie am Grafikkontext arbeiten oder den Grafikzeichnungsbereich steuern müssen, sollten Sie die Verwendung von ImageGetClip () in Betracht ziehen.
Im Allgemeinen ist ImageCrop () eine Standard -Erntefunktion, mit der ein Teil eines Bildes verarbeitet und gespeichert wird, während ImageGetClip () nur verwendet wird, um die Zustandsinformationen des Bildzeichnungskontexts zu erhalten. Das Verständnis ihrer Nutzungsunterschiede kann Verwirrung und Fehler im Entwicklungsprozess vermeiden und die Bildverarbeitungsfunktionen von PHP effizienter nutzen.