Création de miniatures réactives à partir d'images téléchargées
Lorsque vous travaillez avec des images téléchargées par l'utilisateur, la création de miniatures réactives est cruciale pour améliorer l'expérience utilisateur et maintenir les performances du site. Ce guide aborde le défi de générer des miniatures tout en préservant la qualité d'image d'origine.
générer des vignettes avec php
php fournit une gamme de fonctions de manipulation d'image, y compris ImageCopyResized (). Pour créer une vignette à partir d'une image téléchargée, suivez ces étapes:
- Récupérez l'image d'origine: utilisez getImageSize () pour obtenir les dimensions de l'image d'origine et le type de mime. Pixels).
- Créez une nouvelle ressource d'image: Établissez une nouvelle ressource d'image en utilisant ImageCreateTrueColor ().
- Redimensionner l'image: Utiliser l'imagecopyresized () pour redimensionner l'image d'origine pour s'adapter aux dimensions de Thumbnail. The Thumbnail:
Utilisez ImageJPEG () ou ImagePng () pour enregistrer la miniature dans un emplacement souhaité. - Préserver la qualité d'image originale
- pour maintenir la qualité de l'image originale, utilisez un paramètre de qualité $ plus élevé dans ImageJPEG () ou ImagePng (). Ce paramètre varie de 0 à 100, avec une valeur plus élevée indiquant une meilleure qualité. Utilisation d'imageMagick
ImageMagick est une bibliothèque de manipulation d'image plus robuste. Si vous êtes installé sur votre serveur, vous pouvez tirer parti de sa classe Imagrick pour générer des vignettes:
installer imageMagick:
Assurez-vous que l'imageMagick est installé sur votre serveur. Path.
Définir les propriétés d'image:
Configurer le format d'image, la compression et la qualité à l'aide de méthodes de classe. file_put_contents () Pour écrire l'image redimensionnée dans un nouveau fichier. - Exemple de code avec création Thumbnail
- Voici un exemple de fichier ImageUpload.php modifié pour inclure la génération de ThumbNail: ...
if (isset ($ _ fichiers ['image_data'])) {
if (is_uploaded_file ($ _ fichiers ['image_data'] ['tmp_name'])) {
// Traitement d'image original
$ imgdata = addSlashes (file_get_contents ($ _ fichiers ['image_data'] ['tmp_name']));
// Génération de miniatures
if (generateTHumbnail ($ _ fichiers ['image_data'] ['tmp_name'], 100, 100, 90)) {
$ thumbdata = addSlashes (file_get_contents ($ _ fichiers ['image_data'] ['tmp_name']. '_thumb.jpg'));
// Insérez des images originales et miniatures dans la base de données
$ sql = "Update les utilisateurs set user_pic = '". $ imgdata. "', user_pic_small = '". $ thumbdata. "' où>
- ce code utilise GeneratEtHumbnail () pour créer un thumbnail avec des dimensions 100x100 et une qualité de 90%. Le coup suffixe. En implémentant ces techniques, vous pouvez réaliser à la fois la création de miniatures et la préservation de la qualité d'image originale.