Pendant le processus de développement, nous devons souvent enregistrer les images téléchargées par les utilisateurs sur le serveur. Si les images sont téléchargées via un téléphone mobile ou un autre appareil photo, il peut y avoir un problème d'écart de direction. La plupart des appareils enregistrent la direction de rotation dans les métadonnées EXIF de l'image, nous devons donc également traiter ces informations ensemble lors de l'enregistrement de l'image.
Tout d'abord, vous devez télécharger et enregistrer l'image localement via l'URL de l'image distante. Vous pouvez utiliser File_get_gents de Php () et File_Put_Contents () pour l'implémenter:
$url = 'Image éloignéeURL';
$image = file_get_contents($url);
// Nom de fichier et chemin d'enregistrement
$filename = 'Nom du fichier enregistré.jpg';
$save_path = 'Chemin sauvé';
file_put_contents($save_path . $filename, $image);
Les informations de direction de l'image sont généralement stockées dans les métadonnées EXIF, en particulier dans les images de format JPEG. Nous pouvons utiliser la fonction EXIF_READ_DATA () de PHP pour lire ces informations:
// passer Exif S'étendre pour obtenir une direction de rotation
$exif = exif_read_data($save_path . $filename);
if (!empty($exif['Orientation'])) {
// Processus en fonction de la direction de rotation
switch ($exif['Orientation']) {
case 3:
// Tourner180Degré
$image = imagerotate($image, 180, 0);
break;
case 6:
// 顺时针Tourner90Degré
$image = imagerotate($image, -90, 0);
break;
case 8:
// 逆时针Tourner90Degré
$image = imagerotate($image, 90, 0);
break;
}
}
// 保存Tourner后的图片
file_put_contents($save_path . $filename, $image);
Le code ci-dessus utilise le champ d'orientation dans EXIF pour déterminer si l'image doit être tournée en fonction de sa valeur. Si nécessaire, utilisez la fonction ImageRoTate () pour le traitement. Mais veuillez noter ce qui suit:
Grâce aux méthodes ci-dessus, les développeurs peuvent automatiquement identifier et résoudre les problèmes de direction de l'image tout en enregistrant des images distantes, en améliorant la précision et l'expérience utilisateur de l'affichage de l'image. Ceci est particulièrement important dans les scénarios tels que la création de systèmes de traitement d'image et les interfaces de téléchargement d'images mobiles.