Maison  >  Article  >  développement back-end  >  Comment déterminer si une image pivote en php ? Introduction aux méthodes courantes

Comment déterminer si une image pivote en php ? Introduction aux méthodes courantes

PHPz
PHPzoriginal
2023-03-27 18:15:191070parcourir

PHP est un langage de script côté serveur largement utilisé, principalement utilisé pour le développement Web et le traitement d'images. En traitement d’image, un problème courant est de savoir comment déterminer si une image a été pivotée.

Dans les applications pratiques, nous rencontrons souvent des situations où les photos ou images téléchargées par les utilisateurs ne répondent pas aux exigences. L'un des problèmes typiques est que la direction de l'image est incorrecte en raison de la rotation.

Voici quelques situations courantes qui entraînent une rotation des images :

1. Le téléphone de l'utilisateur n'est pas orienté correctement lors de la prise de photos.
2. Les métadonnées de l'image contiennent des informations de rotation.
3. Lors du traitement des images, le programme fait pivoter les images.

Pour résoudre ces problèmes, nous pouvons utiliser certaines fonctions fournies par PHP pour détecter si l'image est pivotée. Certaines méthodes courantes seront présentées ci-dessous :

Méthode 1 : utilisez la fonction exif_read_data() pour obtenir des métadonnées d'image

EXIF est une norme pour les métadonnées de photo, qui enregistre le fabricant, le modèle, le positionnement GPS et d'autres informations de la photo. . Lorsque l’image est pivotée, les informations de rotation seront également enregistrées au format EXIF. Par conséquent, nous pouvons utiliser la fonction exif_read_data() en PHP pour obtenir les métadonnées de l'image, puis détecter si les informations de rotation sont incluses.

Ce qui suit est un exemple de code :

function isRotated($imagePath) {
    $exif = exif_read_data($imagePath);
    if (!empty($exif['Orientation'])) {
        return true;
    } else {
        return false;
    }
}

Avec le code ci-dessus, nous pouvons déterminer si une image a été pivotée.

Méthode 2 : utilisez la fonction getimagesize() pour obtenir les informations de largeur et de hauteur de l'image

Lorsque l'image est pivotée, les informations de largeur et de hauteur de l'image sont également modifiées. Par conséquent, nous pouvons déterminer si l’image a été pivotée en détectant les informations de largeur et de hauteur de l’image. La fonction getimagesize() fournie en PHP peut obtenir les informations de largeur et de hauteur de l'image. Si la largeur et la hauteur ne répondent pas aux exigences, vous pouvez déterminer que l'image a été pivotée.

Ce qui suit est un exemple de code :

function isRotated($imagePath) {
    list($width, $height) = getimagesize($imagePath);
    if ($width > $height) {
        return true;
    } else {
        return false;
    }
}

Méthode 3 : Utilisez la bibliothèque ImageMagick pour la détection

ImageMagick est une puissante bibliothèque de traitement d'image qui peut être utilisée via des extensions PHP. Utilisez ImageMagick pour obtenir directement la hauteur et la largeur, ainsi que l'angle de rotation. Vous pouvez utiliser l'exemple de code suivant pour détecter :

function isRotated($imagePath) {
    $image = new \Imagick($imagePath);
    $orientation = $image->getImageOrientation();
    $width = $image->getImageWidth();
    $height = $image->getImageHeight();
    if ($orientation > 1 && $orientation < 9) {
        return true;
    } else {
        return false;
    }
}

Conclusion

Ce qui précède explique comment faire pivoter les images. Parmi eux, nous pouvons utiliser la fonction exif_read_data() pour obtenir les métadonnées de l'image, nous pouvons également utiliser la fonction getimagesize() pour obtenir les informations de largeur et de hauteur de l'image, et nous pouvons également les détecter via la bibliothèque ImageMagick. Différentes méthodes de traitement ont leurs propres avantages et inconvénients, et les développeurs peuvent choisir en fonction des besoins réels.

Quelle que soit la méthode utilisée, il est important de noter que l'image détectée doit être dans un format d'image valide, sinon des résultats inattendus se produiront. Pour les erreurs qui se produisent lors du téléchargement d'images, nous pouvons utiliser la fonction de jugement du type de fichier de PHP pour augmenter la tolérance aux pannes. Cela nécessite une attention particulière pendant le processus de développement.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn