Création d'une vignette à partir d'une image téléchargée
La génération de vignettes pour les images téléchargées garantit qu'elles n'apparaissent pas déformées tout en préservant la qualité de l'image d'origine. Dans cette question, l'utilisateur cherche des conseils sur la création et le stockage des versions originales et miniatures des images téléchargées.
La configuration de la base de données de l'utilisateur comprend deux tables, « user_pic » et « user_pic_small », pour stocker l'original et la miniature. versions respectivement. Le code PHP fourni gère le téléchargement et le stockage des images, mais n'a pas la logique de création de vignettes.
Solution utilisant la bibliothèque GD de PHP :
La solution consiste à utiliser la bibliothèque GD de PHP pour manipuler et générer la vignette. Une fonction est définie pour prendre en entrée une image téléchargée, une taille désignée et une qualité. Il calcule les dimensions appropriées et crée une vignette avec des espaces noirs de taille proportionnelle pour garantir la cohérence.
Exemple d'utilisation :
function makeThumbnails($updir, $img, $id) { // Define thumbnail size $thumbnail_width = 134; $thumbnail_height = 189; // Calculate dimensions // ... // Check image type and process if ($arr_image_details[2] == IMAGETYPE_GIF) { $imgt = "ImageGIF"; } elseif ($arr_image_details[2] == IMAGETYPE_JPEG) { $imgt = "ImageJPEG"; } elseif ($arr_image_details[2] == IMAGETYPE_PNG) { $imgt = "ImagePNG"; } if ($imgt) { // Image manipulation // ... // Output the thumbnail $imgt($new_image, "$updir" . $id . '_' . "$thumb_beforeword" . "$img"); } }
Solution utilisant Imagick :
Cette solution exploite la bibliothèque Imagick, qui offre des capacités de traitement d'image plus avancées. La fonction génère des vignettes avec les dimensions et la qualité spécifiées, à l'aide des méthodes intégrées de la classe Imagick.
Exemple d'utilisation :
/** * Generate Thumbnail using Imagick class */ function generateThumbnail($img, $width, $height, $quality = 90) { if (is_file($img)) { $imagick = new Imagick(realpath($img)); // Image processing // ... // Output the thumbnail file_put_contents($filename_no_ext . '_thumb' . '.jpg', $imagick); return true; } else { throw new Exception("No valid image provided with {$img}."); } }
Conclusion :
Les deux solutions offrent des moyens efficaces de créer une vignette à partir d'une image téléchargée tout en conservant sa qualité. L'approche choisie dépend des exigences spécifiques et des ressources disponibles de l'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!