PHP read_exif_data et ajuster l'orientation
Le code fourni tente d'ajuster l'orientation des images JPEG téléchargées en fonction des données EXIF. Cependant, les utilisateurs ont signalé des problèmes avec les images des iPhones et des appareils Android.
Analyse du code
Les données EXIF sont extraites à l'aide de la fonction exif_read_data. L'instruction switch vérifie des orientations spécifiques et tente de faire pivoter l'image en conséquence. Cependant, il semble que les données EXIF fournies ne contiennent pas de valeur d'orientation valide.
Code mis à jour
Pour résoudre ce problème, nous pouvons utiliser une méthode plus robuste pour extraire les données d'orientation. Voici une version mise à jour du code :
<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG'); $ort = $exif['IFD0']['Orientation'] ?? 1;</code>
Valeurs d'orientation EXIF
La valeur d'orientation peut varier de 1 à 8, avec différentes valeurs indiquant différentes rotations ou retournements. .
Ajustement de l'orientation de l'image
Avec la valeur d'orientation correcte, nous pouvons ensuite ajuster l'image selon nos besoins :
<code class="php">switch ($ort) { case 3: // 180 rotate left $image->imagerotate(-180, -1); break; case 6: // 90 rotate right $image->imagerotate(-90, -1); break; case 8: // 90 rotate left $image->imagerotate(90, -1); break; }</code>
Considérations supplémentaires
Si les données EXIF ne contiennent toujours pas la valeur d'orientation ou si l'ajustement ne semble pas fonctionner, vous devrez peut-être consulter la documentation spécifique de votre bibliothèque d'images ou envisager d'utiliser méthodes alternatives pour déterminer l'orientation correcte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!