Introduction :
Lorsque les utilisateurs téléchargent des images sur votre site Web, il est il est souvent souhaitable de créer une vignette pour afficher une version plus petite de l’image sans compromettre son rapport hauteur/largeur. Voici un guide complet sur la façon de créer des vignettes tout en préservant l'image originale.
Le défi :
Votre objectif est de créer deux versions d'une image téléchargée : l'originale. image et une vignette. L'image originale doit être enregistrée sur votre serveur et la vignette doit être une version plus petite de l'original qui conserve son rapport hauteur/largeur.
Mise en œuvre :
1. Récupérer les données d'image :
En PHP, vous pouvez récupérer les données d'image téléchargées à l'aide de la variable globale $_FILES. Utilisez la fonction file_get_contents() pour lire les données de l'image dans une chaîne.
2. Déterminer les dimensions de l'image :
Obtenez les dimensions de l'image à l'aide de la fonction getimagesize(). Cela renverra un tableau contenant la largeur, la hauteur et d'autres informations sur l'image.
3. Créer une vignette :
Utilisez une bibliothèque de traitement d'image comme Imagick pour créer la vignette. Imagick propose diverses méthodes de manipulation d'images, notamment le redimensionnement et le recadrage. Assurez-vous que lors du redimensionnement, vous conservez les proportions pour éviter d'étirer ou d'écraser l'image.
4. Enregistrez les images :
Enregistrez l'image originale et la vignette sur votre serveur à l'aide de la fonction file_put_contents(). Assurez-vous d'utiliser des noms de fichiers uniques pour la vignette, par exemple en ajoutant un préfixe ou un suffixe pour éviter d'écraser l'image originale.
5. Redimensionner l'image (option supplémentaire) :
Si Imagick n'est pas disponible sur votre serveur, vous pouvez utiliser la bibliothèque GD. Voici un exemple de fonction qui utilise GD pour créer une vignette :
function makeThumbnails($updir, $img, $id) { $thumbnail_width = 134; $thumbnail_height = 189; $arr_image_details = getimagesize("$updir" . $id . '_' . "$img"); // Calculate new dimensions while preserving aspect ratio // ... // Create new image and copy from original image with resizing // ... // Save the thumbnail imagepng($new_image, "$updir" . $id . '_' . "thumb" . "$img"); }
Conclusion :
En suivant ces étapes et en utilisant la bibliothèque de traitement d'image appropriée, vous pouvez efficacement créez des vignettes à partir des images téléchargées tout en préservant leurs proportions. Cela garantit que vos vignettes conservent l'intégrité des images originales et améliorent l'attrait visuel de votre site Web ou de votre application.
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!