Dans PHP, le traitement des images est très courant, en particulier dans certaines applications Web qui nécessitent un traitement d'image. PHP fournit une bibliothèque de traitement d'image puissante - la bibliothèque GD, qui contient de nombreuses fonctions pour manipuler les images, y compris la rotation, le recadrage, le retournement, etc. Cet article mettra en place comment combiner intelligemment les deux fonctions de ImageFlip et d'imageRereatefromString pour implémenter le fonctionnement et le traitement des images.
Tout d'abord, nous devons comprendre les utilisations de base de ces deux fonctions.
ImageCreateFromString : cette fonction peut créer une ressource d'image à partir d'une chaîne. Habituellement, lorsque nous téléchargeons des données d'image à partir d'une base de données ou d'un fichier, le contenu d'image existe sous la forme d'une chaîne binaire. Cette fonction nous permet de convertir ces chaînes en ressources d'image pour d'autres opérations.
ImageFlip : cette fonction est utilisée pour retourner l'image. Nous pouvons spécifier différents types de flip, tels que le flip horizontal ou le flip vertical. Cette fonctionnalité est très utile pour certaines tâches de traitement d'image dynamiques, telles que l'application d'un effet flip spécifique lors du traitement des images téléchargées par les utilisateurs.
Tout d'abord, nous chargeons l'image via ImageCreateFromString . Supposons que l'utilisateur ait téléchargé une image ou nous avons obtenu le contenu de l'image de la base de données. À ce stade, nous pouvons charger les données d'image dans une ressource d'image via cette fonction.
$imageData = file_get_contents('https://gitbox.net/images/sample.jpg'); // Obtenez des données d'image binaires
$image = imagecreatefromstring($imageData); // Convertir les données binaires en ressources d'image
if (!$image) {
die('Le chargement d'image a échoué');
}
Dans le code ci-dessus, nous utilisons la fonction file_get_contents pour obtenir les données binaires d'image de l'URL spécifiées, puis la convertir en ressource d'image de PHP via ImageCreateFromString . Si la charge échoue, nous terminons le programme via la fonction DI et donnons une invite.
Ensuite, utilisez la fonction ImageFlip pour retourner l'image. La fonction ImageFlip a trois options de flip:
Img_flip_horizontal : flip horizontal
IMG_FLIP_VERTICAL : Flip vertical
Img_flip_both : effectuer simultanément des flips horizontaux et verticaux
Le code suivant montre comment retourner une image horizontalement:
if (imageflip($image, IMG_FLIP_HORIZONTAL)) {
echo 'Image Flip horizontal avec succès';
} else {
echo 'Flip horizontal d'image a échoué';
}
Ce code vérifie si l'image est retournée avec succès. En cas de succès, nous publions le message pertinent.
Après avoir traité l'image, nous pouvons sortir le résultat directement au navigateur ou l'enregistrer dans le système de fichiers. Voici un exemple de code pour la sortie d'une image au navigateur:
header('Content-Type: image/jpeg'); // Définir le type d'image de sortie
imagejpeg($image); // Image de sortie
imagedestroy($image); // Détruiser les ressources d'image
Définissez l'en-tête de réponse dans l'en-tête pour indiquer au navigateur que le contenu renvoyé est une image JPEG, puis utilisez ImageJPEG pour sortir l'image.
En plus de la sortie d'images au navigateur, nous pouvons également enregistrer les images traitées dans le système de fichiers du serveur:
if (imagejpeg($image, 'path/to/save/image.jpg')) {
echo 'Enregistrer avec succès l'image';
} else {
echo 'L'économie d'image a échoué';
}
En combinant les étapes ci-dessus, voici un script PHP complet qui montre comment combiner ImageCreatefromString et imageflip pour lire les images et flip:
<?php
$imageData = file_get_contents('https://gitbox.net/images/sample.jpg'); // Obtenez des données d'image binaires
$image = imagecreatefromstring($imageData); // Convertir les données binaires en ressources d'image
if (!$image) {
die('Le chargement d'image a échoué');
}
// Retourner l'image horizontalement
if (imageflip($image, IMG_FLIP_HORIZONTAL)) {
echo 'Image Flip horizontal avec succès';
} else {
echo 'Flip horizontal d'image a échoué';
}
// Image de sortie
header('Content-Type: image/jpeg'); // Définir le type d'image de sortie
imagejpeg($image); // Image de sortie
// Détruiser les ressources d'image
imagedestroy($image);
?>
En combinant des fonctions ImageCreateFromString et ImageFlip , nous pouvons gérer les images de manière très flexible, surtout lorsque nous devons charger l'image à partir d'une chaîne et la retourner. Cette technique est très utile dans des scénarios tels que le traitement d'image, l'édition d'images téléchargée par les utilisateurs, etc. En utilisant ces fonctions, nous pouvons facilement implémenter des opérations dynamiques sur les images.