En PHP, le traitement des images est une tâche courante. En utilisant la fonction Imagerotate dans la bibliothèque GD, vous pouvez facilement faire pivoter l'image. Cette fonction est très utile, en particulier lors du traitement des images téléchargées par les utilisateurs. Si vous souhaitez faire pivoter l'image et le sortir au format JPEG, cet article expliquera en détail comment l'implémenter.
Imagerotate est une fonction fournie par la bibliothèque GD dans PHP qui vous permet de faire tourner les images. L'image tournée est basée sur l'angle spécifié et la zone vide peut être remplie d'une couleur d'arrière-plan spécifiée.
<span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$angle</span></span><span>, </span><span><span class="hljs-variable">$bgColor</span></span><span>);
</span></span>
$ Image : une ressource d'image, généralement créée par ImageCreateFrom ... Fonctions de la série (telles que ImageCreateFromJPEG , ImageCreateFrommpng , etc.).
$ Angle : l'angle de rotation est l'unité en degrés. Les valeurs positives indiquent une rotation dans le sens horaire et les valeurs négatives indiquent une rotation dans le sens antihoraire.
$ bgcolor : la couleur d'arrière-plan de la zone vierge tournée, généralement la ressource couleur créée par la fonction ImageColorAllocate .
Ensuite, nous démontrerons les étapes spécifiques de la façon de tourner et d'enregistrer l'image au format JPEG via PHP. Supposons que nous voulons traiter un fichier image nommé example.jpg .
Tout d'abord, nous devons charger l'image qui doit être tournée. Ici, nous utilisons la fonction ImageCreateFromJPEG pour charger des images au format JPEG.
<span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span></span>
Nous tournons ensuite l'image via l'imagerotate . Supposons que nous voulons que l'image tourne dans le sens des aiguilles d'une montre de 90 degrés et que la couleur d'arrière-plan est blanche.
<span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0xFFFFFF</span></span><span>); </span><span><span class="hljs-comment">// Fond blanc</span></span><span>
</span></span>
Ici, nous spécifions l'angle de rotation de 90 degrés et la couleur d'arrière-plan est blanche ( 0xffffff représente la valeur hexadécimale du blanc).
Une fois la rotation terminée, nous sortions l'image au format JPEG. Pour maintenir la qualité de l'image, nous pouvons spécifier la qualité de la compression (un entier entre 0 et 100, 100 signifie aucune compression).
<span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>); </span><span><span class="hljs-comment">// 90 Pour la qualité de sortie</span></span><span>
</span></span>
Enfin, n'oubliez pas de nettoyer les ressources d'image que nous prenons en mémoire.
<span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);
</span></span>
Intégrez le code ci-dessus dans un script PHP complet, l'exemple est le suivant:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Chargement de l'image</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'example.jpg'</span></span><span>);
</span><span><span class="hljs-comment">// Faire pivoter l'image 90 Degré,La couleur du fond est blanche</span></span><span>
</span><span><span class="hljs-variable">$rotatedImage</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagerotate</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>, </span><span><span class="hljs-number">0xFFFFFF</span></span><span>);
</span><span><span class="hljs-comment">// L'image de sortie est JPEG Format,La qualité est 90</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>, </span><span><span class="hljs-string">'rotated_example.jpg'</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>);
</span><span><span class="hljs-comment">// Nettoyer les ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$rotatedImage</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L'image tourne et a été enregistrée comme rotated_example.jpg"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Angle de rotation : l'angle de rotation doit être un degré. Par exemple, 90 degrés consiste à faire pivoter l'image dans le sens horaire d'un quart de virage, 180 degrés consiste à faire tourner un demi-tour et -90 degrés consiste à tourner dans le sens antihoraire.
Couleur d'arrière-plan : si l'image tournée produit des zones transparentes, l'imagerotate remplira ces zones avec la couleur d'arrière-plan spécifiée. Vous pouvez définir n'importe quelle couleur via la fonction ImageColorAllocate .
Type d'image : Bien que le format JPEG soit utilisé dans cet exemple, vous pouvez également utiliser des fonctions telles que ImageCreateFrommpng ou ImageCreateFromGif pour traiter les images dans d'autres formats. L'opération de rotation elle-même est indépendante du format d'image.
L'utilisation de la fonction Imagerotate de PHP peut facilement faire tourner les images, et les images tournées peuvent être enregistrées au format JPEG avec du code simple. En combinant les fonctions d'autres bibliothèques GD, vous pouvez implémenter des opérations de traitement d'image plus complexes. J'espère que les exemples de cet article vous aident à traiter efficacement la rotation de l'image dans votre projet.