Spero che questo ti possa essere di aiuto.
Dovrebbe funzionare, anche se non l'ho ancora provato.
codice:
<?php
//--------------------------------------------------------------------------
// crea l'immagine thumbnail (SOLO JPEG)
function create_thumbnail($filesrc,$filedst,$useratio,$maxwidth,$maxheight)
{
/***
$filesrc := nome del file dell'immagine sorgente
$filedst := nome del file di destinazione
$useratio :=
impostato a true permette di mantenere il rapporto larghezza/altezza
per la nuova immagine
$maxwidth := larghezza massima per la nuova immagine
$maxheight := altezza massima per la nuova immagine
**/
// Questo viene fatto con le immagini di tipo jpg
$size = getimagesize($filesrc);
$source = imagecreatefromjpeg($filesrc);
/**
Calcolo le dimensioni (larghezza, altezza) della nuova immagine con
size[0] e size[1] che contengono larghezza e altezza dell'immagine
sorgente
**/
$sizenew = new_size($size[0],$size[1],$maxwidth,$maxheight);
/**
sizenew[0] = larghezza nuova => $w2
sizenew[1] = altezza nuova => $w1
$useratio :
vale true o false a seconda se si vuole mantenere il rapporto
alezza/larghezza dell'immagine sorgente (altrimenti la fa con le dimensioni
massime ($maxwidth,$maxheight) passate alla funzione)
**/
if($useratio) {
$dest = imagecreatetruecolor($sizenew[0], $sizenew[1]);
imagecopyresampled($dest, $source, 0, 0, 0, 0, $sizenew[0], $sizenew[1], $size[0], $size[1]);
}
else {
$dest = imagecreatetruecolor($maxwidth, $maxheight);
imagecopyresampled($dest, $source, 0, 0, 0, 0, $maxwidth, $maxheight, $size[0], $size[1]);
}
// si salva la nuova immagine creata
imagejpeg($dest, $filedst);
}
//--------------------------------------------------------------------------
// calcola larghezza e altezza della nuova immagine
function new_size($width,$height,$maxwidth,$maxheight) {
$Rx = $width/$maxwidth;
$Ry = $height/$maxheight;
// decido il rapporto di compressione
if($Rx > $Ry) {
$newx = ceil($width/$Rx);
$newy = ceil($height/$Rx);
}
else {
$newx = ceil($width/$Ry);
$newy = ceil($height/$Ry);
}
$sizenew = array($newx,$newy);
return $sizenew;
}
?>
Fammi sapere
ByeZ