Position actuelle: Accueil> Derniers articles> Comment extraire et réparer automatiquement les angles de rotation des photos en utilisant des extensions PHP et EXIF

Comment extraire et réparer automatiquement les angles de rotation des photos en utilisant des extensions PHP et EXIF

gitbox 2025-07-14

Extension Extension et corrigez les angles de rotation de la photo à l'aide de PHP et exif

Lorsque vous traitez avec des photos prises à partir de votre téléphone ou de votre appareil photo numérique, vous rencontrez souvent des problèmes avec une rotation incorrecte des photos. Pour s'assurer que les photos sont affichées correctement lors du téléchargement sur le site Web ou de l'exécution d'autres opérations, nous pouvons utiliser des extensions PHP et exif pour extraire et fixer l'angle de rotation des photos.

Installez l'extension PHP EXIF

Avant de commencer, assurez-vous que votre serveur a installé une extension PHP EXIF. S'il n'a pas été installé, vous pouvez l'installer via la commande suivante:

 <span class="fun">sudo apt-get install php-exif</span>

Une fois l'installation terminée, n'oubliez pas d'activer l'extension EXIF dans le fichier php.ini par extension non émouvante = exif .

Lisez l'angle de rotation de la photo

Avec l'extension EXIF activée, nous pouvons lire les métadonnées EXIF de la photo via le code PHP, qui comprend l'angle de rotation.

Tout d'abord, utilisez la fonction exif_read_data () pour lire les données EXIF de la photo:

 <span class="fun">$ exif = exif_read_data (&#39;path / vers / photo.jpg&#39;);</span>

Extraire l'angle de rotation de la photo

Une fois les données EXIF lues, nous pouvons obtenir les informations de rotation de la photo en accédant à $ exif [«orientation»] . L'angle de rotation dans EXIF est généralement représenté par des entiers, et sa signification spécifique est la suivante:

  • 1: Aucune rotation requise
  • 3: tourner dans le sens horaire de 180 degrés
  • 6: faire tourner à 90 degrés dans le sens des aiguilles d'une montre
  • 8: Tournez à 90 degrés dans le sens antihoraire

Nous pouvons calculer l'angle de rotation correct en fonction de ces valeurs:

 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;
}

Faire pivoter la photo

Après avoir extrait l'angle de rotation, nous pouvons utiliser la bibliothèque GD de PHP pour effectuer la rotation réelle de l'image.

Tout d'abord, utilisez la fonction ImageCreateFromJPEG () pour charger la photo:

 <span class="fun">$ image = ImageCreateFromJPEG (&#39;path / to / photo.jpg&#39;);</span>

Ensuite, utilisez la fonction Imagerotate () pour le traitement de la rotation:

 <span class="fun">$ rotateDImage = imagerotate ($ image, $ rotation, 0);</span>

Enfin, utilisez ImageJPEG () pour enregistrer la photo tournée dans un fichier:

 <span class="fun">ImageJPEG ($ rotateDImage, &#39;Path / To / Rotated-Photo.jpg&#39;);</span>

Résumer

En utilisant des extensions PHP et EXIF, nous pouvons facilement extraire l'angle de rotation de la photo et effectuer un traitement de rotation de l'image à l'aide de la bibliothèque GD. Cette méthode garantit non seulement que les photos sont correctement tournées, mais évitent également efficacement le problème des erreurs d'affichage lors du téléchargement de photos.