Wenn Sie mit Fotos von Ihrem Telefon oder Ihrer Digitalkamera zu tun haben, stoßen Sie häufig auf Probleme mit einer falschen Rotation der Fotos. Um sicherzustellen, dass die Fotos beim Hochladen auf die Website oder andere Vorgänge korrekt angezeigt werden, können wir PHP- und EXIF -Erweiterungen verwenden, um den Rotationswinkel der Fotos zu extrahieren und zu reparieren.
Stellen Sie vor Beginn sicher, dass Ihr Server die PHP EXIF -Erweiterung installiert hat. Wenn es nicht installiert wurde, können Sie es über den folgenden Befehl installieren:
<span class="fun">sudo apt-Get installieren Sie PHP-EXIF</span>
Vergessen Sie nach Abschluss der Installation nicht, die EXIF -Erweiterung in der Php.ini -Datei zu aktivieren, indem Sie Erweiterung = exif kontrollieren.
Mit aktivierter Exif -Erweiterung können wir die EXIF -Metadaten des Fotos über PHP -Code lesen, der den Rotationswinkel enthält.
Verwenden Sie zunächst die Funktion exif_read_data (), um die EXIF -Daten des Fotos zu lesen:
<span class="fun">$ exif = exif_read_data ('path/to/photo.jpg');</span>
Sobald die EXIF -Daten gelesen sind, können wir die Rotationsinformationen des Fotos erhalten, indem wir $ exif ['Orientierung'] zugreifen. Der Rotationswinkel in EXIF wird normalerweise durch Ganzzahlen dargestellt, und seine spezifische Bedeutung lautet wie folgt:
Wir können den richtigen Drehwinkel basierend auf diesen Werten berechnen:
function getPhotoRotation($exifOrientation) {
switch ($exifOrientation) {
case 3: $rotation = 180; break;
case 6: $rotation = 90; break;
case 8: $rotation = -90; break;
default: $rotation = 0;
}
return $rotation;
}
Nach dem Extrahieren des Rotationswinkels können wir die GD -Bibliothek von PHP verwenden, um die tatsächliche Bildrotation durchzuführen.
Verwenden Sie zunächst die Funktion der ImagecreateFromjpeg (), um das Foto zu laden:
<span class="fun">$ image = imagecreatefromjpeg ('path/to/photo.jpg');</span>
Verwenden Sie dann die Funktion "ImageBerotate () für die Rotationsverarbeitung:
<span class="fun">$ rotatatedImage = Imagerotate ($ image, $ rotation, 0);</span>
Verwenden Sie schließlich ImageJpeg () , um das gedrehte Foto in einer Datei zu speichern:
<span class="fun">ImageJpeg ($ rotatedImage, 'Pfad/to/rotatatated-photo.jpg');</span>
Durch die Verwendung von PHP- und EXIF -Erweiterungen können wir den Rotationswinkel des Fotos problemlos extrahieren und mit Hilfe der GD -Bibliothek Bildrotationsverarbeitung durchführen. Diese Methode stellt nicht nur sicher, dass die Fotos korrekt gedreht werden, sondern vermeidet auch das Problem der Anzeigefehler beim Hochladen von Fotos.