Erstellen einer Miniaturansicht aus einem hochgeladenen Bild
Durch die Erstellung von Miniaturansichten für hochgeladene Bilder wird sichergestellt, dass diese nicht verzerrt erscheinen, während die ursprüngliche Bildqualität erhalten bleibt. Bei dieser Frage sucht der Benutzer nach Anleitung zum Erstellen und Speichern sowohl der Original- als auch der Miniaturansichtsversion hochgeladener Bilder.
Die Datenbankeinrichtung des Benutzers umfasst zwei Tabellen, „user_pic“ und „user_pic_small“, zum Speichern des Originals und der Miniaturansicht Versionen bzw. Der bereitgestellte PHP-Code übernimmt das Hochladen und Speichern von Bildern, ihm fehlt jedoch die Logik für die Erstellung von Miniaturansichten.
Lösung mit der GD-Bibliothek von PHP:
Die Lösung beinhaltet die Verwendung der GD-Bibliothek von PHP Bearbeiten und generieren Sie das Miniaturbild. Eine Funktion ist so definiert, dass sie ein hochgeladenes Bild, die angegebene Größe und Qualität als Eingabe verwendet. Es berechnet die entsprechenden Abmessungen und erstellt ein Miniaturbild mit proportional großem Schwarzraum, um Konsistenz sicherzustellen.
Beispielverwendung:
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"); } }
Lösung mit Imagick:
Diese Lösung nutzt die Imagick-Bibliothek, die erweiterte Bildverarbeitungsfunktionen bietet. Die Funktion generiert mithilfe der integrierten Methoden der Imagick-Klasse Miniaturansichten mit den angegebenen Abmessungen und der angegebenen Qualität.
Beispielverwendung:
/** * 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}."); } }
Schlussfolgerung:
Beide Lösungen bieten effiziente Möglichkeiten, aus einem hochgeladenen Bild ein Miniaturbild zu erstellen und dabei dessen Qualität beizubehalten. Der gewählte Ansatz hängt von den spezifischen Anforderungen und verfügbaren Ressourcen der Anwendung ab.
Das obige ist der detaillierte Inhalt vonWie generiert man effizient Miniaturansichten aus hochgeladenen Bildern in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!