Raga ho un problema con un mio script per redimensionere le immagini: gif, jpg, png.

Funziona tutto bene, l'unico problema è che se l'immagine è "molto" grande (a livello di pixel) non me la redimensiona...sapete come mai?

Tutto funziona bene, non so esattamente fino a che risoluzione ma se provo con un'immagine 3264x2448 non va più niente. La stessa immagine a 1024x768 viene caricata.

Lo script è questo:
Codice PHP:
    function resize_image($image_type ""$image_file ""$dest_file ""$new_width 96) {
        if (( !
$image_file != "" ) && ( !$image_type != "" )) {
            return 
0;
        }

        if ( !
file_exists($image_file) ) {
            return 
0;
        }

        switch (
trim($image_type)) {
            case 
"image/gif":
                
$im = @imagecreatefromgif($image_file);
                break;
            case 
"image/jpeg":
            case 
"image/pjpeg":
                
$im = @imagecreatefromjpeg($image_file);
                break;
            case 
"image/png":
            case 
"image/x-png":
                
$im = @imagecreatefrompng($image_file);
                break;
            default:
                
$im false;
                break;
        }

        if ( !
$im ) {
            return 
0;
        }

        
// Leggo le dimensioni originali dell'immagine
        
$width imagesx($im);
        
$height imagesy($im);

        
// Imposto le nuove dimensioni dell'immagine
        
$new_width = ($new_width 0) ? $new_width $width;
        
$new_height = ($new_width 0) ? ($new_width $height) / $width $height;

        
// Ridimensiono l'immagine
        
$im_resized imagecreatetruecolor($new_width$new_height);

        
// Conservo la trasparenza dell'immagine
        
if( $image_type == "image/gif" || $image_type == "image/png" ) {
            
$colorcount imagecolorstotal($im);
            if ( 
$colorcount == $colorcount 256;
            
imagetruecolortopalette($im_resizedtrue$colorcount);
            
imagepalettecopy($im_resized$im);
            
$transparentcolor imagecolortransparent($im);
            
imagefill($im_resized00$transparentcolor);
            
imagecolortransparent($im_resized$transparentcolor);
        }

        
imagecopyresampled($im_resized$im0000$new_width$new_height$width$height);

        
// Scrivo l'immagine sul disco
        
if ( $dest_file == '' ) {
            
$dest_file $image_file;
        }
        switch (
$image_type) {
            case 
"image/gif":
                
imagegif($im_resized$dest_file);
                break;
            case 
"image/jpeg":
            case 
"image/pjpeg":
                
imagejpeg($im_resized$dest_file100);
                break;
            case 
"image/png":
            case 
"image/x-png":
                
imagepng($im_resized$dest_file1);
                break;
        }

        return 
1;
    } 
consigli?