Ciao ragazzi in questi giorni ho finito uno script per il caricamento delle immagini di ogni utente e il ridimensionamento, solo che mi è parso un problema con le .png da ridimensionare..potete aiutarmi?

Codice PHP:
<?php
session_start
();
$nick_sess=$_SESSION['nick'];

//mi connetto al database
$archivio=mysql_connect("http://projectphp.altervista.org""projectphp""progettologin");
$beta=mysql_select_db("my_projectphp");

$time=time();
$data=date("d/m/y");


//controllo se il cariicamento ha avuto qualche errore
if ($_FILES['img']['error'] != UPLOAD_ERR_OK){
    
//se c'è qualche errore glielo mostro
    
$error=$_FILES['img']['error'];
    if (
$error==4){$error="Seleziona un file!";}
    echo 
"<script>alert(\"$error\"); history.go(-1);</script>";
}
else{
        
//altrimenti controllo il formato del file
        //se il tipo di file è diverso da JPG,GIF,PNG MANDO UN MEX D'ERRORE
        
if ($_FILES['img']['type'] != "image/gif" and $_FILES['img']['type'] != "image/jpeg" and $_FILES['img']['type'] != "image/png") {
            echo 
"<script>alert(\"Tipo di file non corretto!\"); history.go(-1);</script>";
        }
        else{
            
//se il file è corretto
            // Ottengo l'altezza e la larghezza
            
list($width$height) = getimagesize($_FILES['img']['tmp_name']);
            
//controllo se non superano i 128 x 128
            
if ($width 128 || $height 128){

                
//nome immagine da ridimensionare
                
$file $_FILES['img']['tmp_name'];
                
//altezza new
                
$width_  155;
                
//larghezza new in scala
                
$height_ = (155*$height)/$width;
                
//qualità
                
$qualita 100;
                
$new_image imagecreatetruecolor($width_$height_);
                
$type=$_FILES['img']['type'];

                if (
$type == "image/gif"){
                    
//nome dell'immagine che caricherò
                    
$name_new_image "img_utenti/$time.gif";
                    
$src_image imagecreatefromgif($file);
                    
imagecopyresized($new_image$src_image0000$width_$height_imagesx($src_image), imagesy($src_image));
                    
imagegif($new_image$name_new_image$qualita);

                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.gif' WHERE idut='$nick_sess'");
                
                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                }
                else if (
$type == "image/jpeg"){
                    
//nome dell'immagine che caricherò
                    
$name_new_image "img_utenti/$time.jpeg";
                    
$src_image imagecreatefromjpeg($file);
                    
imagecopyresized($new_image$src_image0000$width_$height_imagesx($src_image), imagesy($src_image));
                    
imagejpeg($new_image$name_new_image$qualita);

                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.jpeg' WHERE idut='$nick_sess'");
                
                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                }
                else if (
$type == "image/png"){
                    
//nome dell'immagine che caricherò
                    
$name_new_image "img_utenti/$time.png";
                    
$src_image imagecreatefrompng($file);
                    
imagecopyresized($new_image$src_image0000$width_$height_imagesx($src_image), imagesy($src_image));
                    
imagepng($new_image$name_new_image$qualita);

                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.png' WHERE idut='$nick_sess'");

                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                }
                
                

                


                

                


        }
        else{
            
$type=$_FILES['img']['type'];
            if (
$type == "image/gif"){
                    
move_uploaded_file($_FILES['img']['tmp_name'], "img_utenti/$time.gif");
                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.gif' WHERE idut='$nick_sess'");
                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                }
                else if (
$type == "image/jpeg"){
                    
move_uploaded_file($_FILES['img']['tmp_name'], "img_utenti/$time.jpeg");

                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.jpeg' WHERE idut='$nick_sess'");
                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                }
                else if (
$type == "image/png"){
                    
move_uploaded_file($_FILES['img']['tmp_name'], "img_utenti/$time.png");

                    
//inserisco il nome all'interno deldatabase
                    
$query=mysql_query("UPDATE utenti_iscritti SET img_utente='$time.png' WHERE idut='$nick_sess'");

                    echo 
"<script type=\"text/javascript\">alert(\"Immagine caricata con successo!\"); history.go(-1)</script>";
                
                }
                



        
        }

    }

}



?>