In queto veloce articolo vi riporto una funzione che utilizzo sul mio sito https://www.fotoarts.it per creare le thumbnail delle immagini che gli utenti caricano.

function createThumbnail($sourcePath, $destinationPath, $maxSize = 400) {
	// La funzione list in PHP viene utilizzata per assegnare valori a un elenco di variabili in un'unica operazione.
    list($width, $height, $type) = getimagesize($sourcePath); // getimagesize in PHP viene utilizzata per ottenere le dimensioni e il tipo

    // Calcolare le nuove dimensioni
    if ($width > $height) {
        $newWidth = $maxSize;
        $newHeight = ($maxSize / $width) * $height;
    } else {
        $newWidth = ($maxSize / $height) * $width;
        $newHeight = $maxSize;
    }

    // Creare l'immagine thumbnail
    $thumb = imagecreatetruecolor($newWidth, $newHeight);

    // Caricare l'immagine originale
    if ($type == IMAGETYPE_JPEG) {
        $source = imagecreatefromjpeg($sourcePath);
    } elseif ($type == IMAGETYPE_PNG) {
        $source = imagecreatefrompng($sourcePath);
    } else {
        // Aggiungere altri formati supportati se necessario
        return false;
    }

    // Ridimensionare l'immagine originale alla dimensione della thumbnail
    imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

    // Salvare l'immagine thumbnail nel formato desiderato
    if ($type == IMAGETYPE_JPEG) {
        imagejpeg($thumb, $destinationPath, 90); // L'ultimo parametro è la qualità dell'immagine JPEG (da 0 a 100)
    } elseif ($type == IMAGETYPE_PNG) {
        imagepng($thumb, $destinationPath, 9); // L'ultimo parametro è la qualità dell'immagine PNG (da 0 a 9)
    }

    // Liberare le risorse
    imagedestroy($thumb);
    imagedestroy($source);

    return true;
}

// Utilizzo dell'esempio
$sourceImage = 'percorso/immagine_originale.jpg';
$destinationImage = 'percorso/thumbnail.jpg';

if (createThumbnail($sourceImage, $destinationImage)) {
    echo 'Thumbnail creato con successo!';
} else {
    echo 'Errore nella creazione del thumbnail.';
}

Come potete vedere è una funzione molto semplice, nei commenti sono spiegate tutte le funzioni e particolarità.

Tags: