Ciao Alhazred! Scusa, hai ragione, ora dovrebbe essere meglio:

Codice PHP:
$allowed_type = array("image/jpeg","image/pjpeg""image/gif""image/x-png""image/png");
    
$type $_FILES["image_upload_box"]["type"];
    
    
            
// get width and height of original image
    
list($image_width$image_height) = getimagesize($_FILES["image_upload_box"]["tmp_name"]);
 
$OS $_POST['OS'];
$pub_name $_POST['pub_name'];
$lang $_POST['lang'];








    
// file needs to be jpg,gif,bmp,x-png, 4 MB max and width 320,640.
    
if (in_array($type$allowed_type) && ($_FILES["image_upload_box"]["size"] < 4000000) && ($image_width == 640) && ($image_height == 100)) {


  


        
        
// if uploaded image was JPG/JPEG
        
if($_FILES["image_upload_box"]["type"] == "image/jpeg" || $_FILES["image_upload_box"]["type"] == "image/pjpeg"){    
            
$image_source imagecreatefromjpeg($_FILES["image_upload_box"]["tmp_name"]);
        }        
        
// if uploaded image was GIF
        
if($_FILES["image_upload_box"]["type"] == "image/gif"){    
            
$image_source imagecreatefromgif($_FILES["image_upload_box"]["tmp_name"]);
        }    
        
// BMP doesn't seem to be supported so remove it form above image type test (reject bmps)    
        // if uploaded image was BMP
        
if($_FILES["image_upload_box"]["type"] == "image/bmp"){    
            
$image_source imagecreatefromwbmp($_FILES["image_upload_box"]["tmp_name"]);
        }            
        
// if uploaded image was PNG
        
if($_FILES["image_upload_box"]["type"] == "image/png" || $_FILES["image_upload_box"]["type"] == "image/x-png"){
            
$image_source imagecreatefrompng($_FILES["image_upload_box"]["tmp_name"]);
        }
        


    
        
        
$remote_file "image_files/".rand(0,10000).$_FILES["image_upload_box"]["name"];
        
imagejpeg($image_source,$remote_file,100);
        
chmod($remote_file,0644);
    
    


    
        
            
            
$new_width 320;
            
$new_height 50;
            
            
            
$new_image imagecreatetruecolor($new_width $new_height);
            
$image_source imagecreatefromjpeg($remote_file);
            


            
            
imagecopyresampled($new_image$image_source0000$new_width$new_height$image_width$image_height);
            
imagejpeg($new_image,$remote_file,100);
            
            
imagedestroy($new_image);
                
        
imagedestroy($image_source);
        
        
//final file name
        
$resized_name basename($remote_file); 
Ho trovato alcune soluzioni, tipo imagesavealpha(), ma non so in che parte del codice dovrei inserirla.
Il problema persiste solo con le immagini trasparenti, ma la maggiore utilità dello script dovrebbe essere proprio con queste ultime. Qualche idea?