Ciao a tutti, sul mio sito ho una cartella images che contiene tante immagini che si chiamano 1.png, 2.png ecc... Volevo visualizzare in una barra laterale tutte le immagini (10 per pagina della barra laterale) e al click su una delle immagini, vederla in dimensioni reali, ma il problema è che le immagini sono troppo pesanti, quindi volevo fare in modo che ognuna delle immagini della barra laterale venisse "miniaturizzata" in modo da portarla a 30px x 40px rendendole così più leggere e molto più facili da caricare per la banda dell'utente che le utilizza. Il problema è che non vorrei salvarle sul server, ma crearee sul momento miniature che poi vengono stampate e subito cancellate. Sapete aiutarmi?
EDIT: Ho trovato questo e funziona, ma mostra una sola immagini e anche se richiamo un'altra volta la funzione OutThumb non mostra ulteriori immagini! Sapete aiutarmi?
Codice PHP:
<?
function OutThumb($src, $w, $h){
$size = getimagesize($src);
if( $size[2] == 2 ){$im = @imagecreatefromjpeg($src);}
elseif( $size[2] == 1 ){$im = @imagecreatefromgif($src);}
elseif( $size[2] == 3 ){$im = @imagecreatefrompng($src);}
$newwidth = $size[0];
$newheight = $size[1];
if( $newwidth > $w ){
$newheight = ($w / $newwidth) * $newheight;
$newwidth = $w;
}
if( $newheight > $h ){
$newwidth = ($h / $newheight) * $newwidth;
$newheight = $h;
}
if($size[2] != 1){
$new = imagecreatetruecolor($newwidth, $newheight);
imagecopyresampled($new, $im, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
}
else{
$new = imagecreate($newwidth, $newheight);
imagecopyresized($new, $im, 0, 0, 0, 0, $newwidth, $newheight, $size[0], $size[1]);
}
header('Content-Type: ' . $size['mime']);
if( $size[2] == 2 ){@imagejpeg($new, '', 100);}
elseif( $size[2] == 1 ){@imagegif($new);}
elseif( $size[2] == 3 ){@imagepng($new);}
@imagedestroy($im);
@imagedestroy($new);
}
OutThumb("prova.jpg", 40, 40);
?>