PHP Thumbnails on the fly

Independent Codes

Questo articolo fa parte del progetto Independent Codes
A volte può servire creare le thumbnails delle foto che abbiamo caricato sul sito, per crearle on the fly, senza doverle salvare sul disco del server (anche se in molti casi, per non dare lavoro inutile al processore è sicuramente meglio salvarle…), possiamo utilizzare il codice che troviamo qui sotto, è sufficiente richiamarlo dal tag < img > utilizzando per la proprietà src una stringa tipo ‘imgres.php?file=nomefileimmagine’, volendo possiamo passare come parametro anche dimensione della thumb da creare…:


<?php
// il file di cui dobbiamo creare la thumbnail
$file = $_GET['file'];

//Questo restringe l'immagine in output al 25% dell'originale
$size = 0.25;

// io di solito uso i .jpg, ma si possono utilizzare anche png e gif
header('Content-type: image/jpeg');

// setto i parametri per il ridimensionamento
list($width, $height) = getimagesize($file);
$modwidth = $width * $size;
$modheight = $height * $size;

// Creo il canvas (la tela)
$tn= imagecreatetruecolor($modwidth, $modheight);
$source = imagecreatefromjpeg($file);

// Ridimensiono l'immagine per far sì che combaci con il canvas
imagecopyresized($tn, $source, 0, 0, 0, 0, $modwidth, $modheight, $width, $height);

// Butto in output l'immagine creata in formato jpg, volendo si può fare anche in png o gif
imagejpeg($tn);
?>