Heim > Backend-Entwicklung > PHP-Tutorial > Wie generiert man effizient Miniaturansichten aus hochgeladenen Bildern in PHP?

Wie generiert man effizient Miniaturansichten aus hochgeladenen Bildern in PHP?

Linda Hamilton
Freigeben: 2024-11-07 16:41:03
Original
971 Leute haben es durchsucht

How to Efficiently Generate Thumbnails from Uploaded Images in PHP?

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");
    }
}
Nach dem Login kopieren

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}.");
    }
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage