Maison > développement back-end > tutoriel php > Comment créer des vignettes à partir d'images téléchargées tout en préservant les proportions ?

Comment créer des vignettes à partir d'images téléchargées tout en préservant les proportions ?

Susan Sarandon
Libérer: 2024-11-07 02:55:03
original
982 Les gens l'ont consulté

How to Create Thumbnails from Uploaded Images While Preserving Aspect Ratio?

Création de miniatures à partir d'images téléchargées pour la préservation du rapport hauteur/largeur

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");
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal