guardate qst codice per effettuare un miniatura d'immagine:
<?
$img = $_GET['immagine'];
function estensione($nome){
$trova_punto = explode(".", $nome);
$estensione = $trova_punto[count($trova_punto) - 1];
$estensione = strtolower($estensione);
// Se non ci sono estensioni
if (isset($trova_punto[1]) == FALSE){
return "";
}
return $estensione;
}
$file = $doc;
$estens = estensione($img);
list($width, $height) = getimagesize($img);
Header("Content-type: image/".$estens);
Header("Content-Disposition: inline; filename=TN_".urldecode($img));
//preparo lo switch per il tipo esatto di funzione in base al tipo d'immagine
switch($_estens){
default:
$funzione_image_create = "ImageCreateFromJpeg";
$funzione_image_new = "ImageJpeg";
break;
case "jpg":
$funzione_image_create = "ImageCreateFromJpeg";
$funzione_image_new = "ImageJpeg";
case "jpeg":
$funzione_image_create = "ImageCreateFromJpeg";
$funzione_image_new = "ImageJpeg";
break;
case "png":
$funzione_image_create = "ImageCreateFromPng";
$funzione_image_new = "ImagePNG";
break;
case "gif":
$funzione_image_create = "ImageCreateFromGif";
$funzione_image_new = "ImagePNG";
break;
}
//calcolo il rapporto delle dimensioni delle immagini
$rapporto_division = $width/$height;
//con number format formatto il rapporto
$rapporto_format = number_format($rapporto_division, 1, '.', ' ');
$final_alt = 40;
$final_largh = number_format($final_alt/$rapporto_format,0);
//restituisce un elemento identificativo per l'immagine data
$img_original = @$funzione_image_create($img);
//ImageCreateTrueColor: funzione per creare un'immagine con illimitati colori e con altezza e lunghezza dati
$img_final = @ImageCreateTrueColor($final_largh,$final_alt);
//funzione per ridurre le immagini;
@ImageCopyResampled($img_final, $img_original, 0, 0, 0, 0, $final_largh, $final_alt, $width, $height);
//questa funzione crea fisicamente il nuovo file
@$funzione_image_new($img_final, "", 100);
//queste due funzioni liberano la memoria dalle immagini create
@ImageDestroy($img_original);
@ImageDestroy($img_final);
?>
tutto funziona se gli passo una jpg o un png... ma se gli passo un'immagine gif, questa mi compare tutta nera... da che può dipendere?
in pratica qst script effettua una conversione per le gif rendendole jpg, qst perchè le GD nn supportano il formato GIF... a qnt ho capito vi è un problema nella conversione... come risolvo?
grazie