sto utilizzando questa funzione per uploadare e ridimensionare un'immagine, la funzione è praticabile sia per il JPG, per il GIF che per il PNG!

soltanto che nel PNG e nel JPG le immagini miniature create sono di pessima qualità...

so che per il jpg esiste la funzione imagecreatetruecolor, però non ho capito come e dove applicarla nel contesto della funzione, mentr eper il PNG quale modo ho per migliorare la qualità?


Codice PHP:
function resampimagejpg($forcedwidth$forcedheight$sourcefile$destfile$imgcomp,$type) {
   
$g_imgcomp=100-$imgcomp;
   
$g_srcfile=$sourcefile;
   
$g_dstfile=$destfile;
   
$g_fw=$forcedwidth;
   
$g_fh=$forcedheight;

   if(
file_exists($g_srcfile))
       {
       
$g_is=getimagesize($g_srcfile);
       if((
$g_is[0]-$g_fw)>=($g_is[1]-$g_fh))
           {
           
$g_iw=$g_fw;
           
$g_ih=($g_fw/$g_is[0])*$g_is[1];
           }
           else
           {
           
$g_ih=$g_fh;
           
$g_iw=($g_ih/$g_is[1])*$g_is[0];    
           }
       if (
ereg("jpeg",$type)) $img_src=imagecreatefromjpeg($g_srcfile);
       if (
ereg("gif",$type)) $img_src=imagecreatefromgif($g_srcfile);
       if (
ereg("png",$type)) $img_src=imagecreatefrompng($g_srcfile);
       
$img_dst=imagecreate($g_iw,$g_ih);
       
imagecopyresampled($img_dst$img_src0000$g_iw$g_ih$g_is[0], $g_is[1]);
       
imagejpeg($img_dst$g_dstfile$g_imgcomp);
       
imagedestroy($img_dst);
       return 
true;
       }
       else
       return 
false;