Beim Verarbeiten von Bildern mithilfe der GD -Bibliothek von PHP ist ImageFlip () eine sehr bequeme Funktion, die Bilder schnell, vertikal oder gleichzeitig horizontal, vertikal oder gleichzeitig umsetzt. Nach dem Umdrehen des Bildes wird jedoch ein Problem mit Beschriftungen, Koordinatenpunkten oder anderen Positionsmarken auf dem Bild des Bildkoordinatensystems auf dem Bild vorhanden: Der ursprüngliche Punkt entspricht nicht mehr derselben Position auf dem Bild.
In diesem Artikel wird nach Verwendung der Funktion imageFlip () die Anmerkungen oder Elemente auf dem Bild in der erwarteten Position korrekt angepasst, sodass das Koordinatensystem korrekt angepasst wird.
Die ImageFlip () -Funktion von PHP wird seit PHP 5.5 bereitgestellt und wird verwendet, um Bilder umzudrehen:
bool imageflip ( GdImage $image , int $mode )
wobei $ modus einer der folgenden sein kann:
Img_flip_horizontal : horizontaler Flip
IMG_FLIP_VERTICAL : vertikaler Flip
Img_flip_both : horizontal und vertikal gleichzeitig flip
Angenommen, wir haben ein Bild mit einem Koordinatenpunkt (x, y) . Wir verwenden ImageFlip () , um das Bild horizontal ( img_flip_horizontal ) und zu diesem Zeitpunkt das Bildpixel, wobei (x, y) ebenfalls auf die andere Seite geworfen wird, und die ursprünglichen Koordinaten ungenau.
Die Breite des Originalbildes beträgt 500px
Der ursprüngliche Koordinatenpunkt ist (100, 200)
Nach dem Flippen sollte der Punkt tatsächlich sein (500 - 100 = 400, 200)
$newX = $imageWidth - $oldX;
$newY = $oldY;
$newX = $oldX;
$newY = $imageHeight - $oldY;
$newX = $imageWidth - $oldX;
$newY = $imageHeight - $oldY;
Hier ist ein vollständiges Beispiel, das zeigt, wie ein Bild umdrehen und Koordinaten korrekt sind:
<?php
// Laden Sie das Originalbild
$imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
// Holen Sie sich Bildbreite und Höhe
$width = imagesx($image);
$height = imagesy($image);
// Originalkoordinatenpunkt
$oldX = 100;
$oldY = 200;
// Horizontale Flip durchführen
imageflip($image, IMG_FLIP_HORIZONTAL);
// Neue Koordinatenberechnung
$newX = $width - $oldX;
$newY = $oldY;
// Mark neue Koordinatenpunkte markieren(Rot)
$red = imagecolorallocate($image, 255, 0, 0);
imagefilledellipse($image, $newX, $newY, 10, 10, $red);
// Ausgabebild
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
?>
Die Koordinatenkonvertierungslogik hängt eng mit dem Bildflip -Muster zusammen und muss genau übereinstimmen.
Wenn mehrere Koordinatenpunkte in Stapeln umgewandelt werden müssen, wird empfohlen, sie in Funktionen zur Verarbeitung zu integrieren.
Wenn der Bildinhalt von einem Benutzer -Upload stammt, überprüfen Sie unbedingt die Bildgröße und geben Sie zuerst ein, um Sicherheitsprobleme zu vermeiden.
ImageFlip () ist ein sehr effizientes Werkzeug für die Verarbeitung von Bildern. Um die "Koordinatenbedeutung" im Bild konsistent zu halten, müssen wir die Koordinatenposition nach dem Flip aktiv berechnen und aktualisieren. Durch die Beherrschung dieser Technik können Sie flexiblere Bildverarbeitungsfunktionen in PHP implementieren, wie z. B. interaktive Markierung, Bildannotationstools oder grafische Positionierungssysteme.