Hola, tengo un script en php que cuando subo una imagen al servidor la resamplea (además de embeberle un watermak) que uso habitualmente pero me encontré con el problema que al cargar la imagen desde FF o Chrome la imagen creada es negra, no sucede lo mismo en IE.
 
El proceso de subida de la imagen y del thumbnail lo hace perfecto, simplemente cuando subo desde IE no hay drama pero desde otros navegadores me crea en el servidor una imagen totalmente negra. 
Pego el script a ver si alguien me da una mano y me explica porqué hace esto, yo siempre supuse que al correr la aplicación en el servidor es independiente del navegador usado pero por algún raro motivo no puedo subir imágenes desde estos dos navegadores (no probé en otros, normalmente trabajo para IE y testeo en FF y Chrome) 
Gracias desde ya 
 Código PHP:
    // RESAMPLEO DE IMAGEN
################################################################################################## 
$campo = $_FILES["imagen"];
 
//function imgResample2 ($imagen, $dir="../../images/albumes/", $anchura, $anchura_thumb, $watermark="", $watermark_thumb="", $pos="L-T", $wmdist=0, $c1=95, $c2=97){ 
$dir="../images/user-imagenes/";
$watermark="../images/logo-watermark.png";
$watermark_thumb="";
$pos="R-T";
$wmdist=5;
$c1=95;
$c2=97;
$anchura = 500;
$anchura_thumb = 200;
$dir_bd = "images/user-imagenes";
$unique = time();
    if($_FILES["imagen"]['name']!=''){ 
     
    //Si el campo está lleno, es decir, si se subió una foto... 
 
        //crea los directorios necesarios 
        if($dir!=""){ 
            if(!file_exists($dir)) mkdir($dir); 
        } 
        //asigna las variables         
        $name=$_FILES["imagen"]['name']; 
        $type=$_FILES["imagen"]['type']; 
        $image_name = $unique.".jpg"; 
         
        //Imagen original en el servidor 
        $temp=$_FILES["imagen"]['tmp_name'];  
         
        //Objeto con el que trabajará el programa 
        if($type=="image/pjpeg"){ 
            $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n");  
        } 
        if($_FILES["imagen"]['type']=="image/gif"){ 
            $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
            $image_name = str_replace(".gif", ".jpg", $image_name); 
        } 
        if($_FILES["imagen"]['type']=="image/x-png"){ 
            $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
            $image_name = str_replace(".png", ".jpg", $image_name); 
        } 
        //Para que acepte la transparencia del PNG 
        imagealphablending($img, true); 
        //INICIA PROCESO 
            $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen 
            $ratio = ($dimensiones[0] / $anchura); 
            $altura = round($dimensiones[1] / $ratio); 
            $image = imagecreatetruecolor($anchura,$altura); //crea la nueva imagen 
            $FFF = imagecolorallocate($img, 255,255,255); 
            imagefill($image, 0, 0, $FFF); 
            imagecopyresampled ($image, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala 
             
            //INICIA WATERMARK 
            //posición horizontal y vertical del watermark: 
            $pos = explode("-",$pos); 
            $wmhorz=$pos[0]; 
            $wmvert=$pos[1]; 
         
            if($watermark != ''){ 
                $logo = imagecreatefrompng($watermark); 
                $margen = $wmdist; //distancia entre el watermark y la orilla 
                $logoW =imagesx($logo); //Anchura del logo 
                $logoH =imagesy($logo); //Altura del logo 
                switch ($wmhorz){ 
                    case "L": 
                        $xpos=$margen; 
                        break; //end L 
                    case "R": 
                        $xpos=$anchura-$logoW-$margen; //posición en x del wm 
                        break; //end R 
                } //end switch hotz 
                switch ($wmvert){ 
                    case "T": 
                        $ypos=$margen;  
                        break; //end T 
                    case "B": 
                        $ypos=$altura-$logoH-$margen; //posición en y del wm 
                        break; //end B 
                } //end switch vert 
                imagecopy($image, $logo, $xpos, $ypos, 0, 0, $logoW, $logoH); //Pone el logo 
                imagedestroy($logo); //destruye el logo después de usarlo 
            } 
            //TERMINA WATERMARK 
            imagejpeg($image,"$dir$image_name", $c1);//mueve la imagen al server (el segundo parámetro es la calidad) 
            imagedestroy($image); //destruye image 
            imagedestroy($img); //destruye la imagen "origen" 
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
        //TERMINA IMAGEN 
         
        //INICIA THUMBNAIL 
        if($anchura_thumb != 0 || $anchura_thumb == $anchura || $anchura_thumb == "" || $anchura_thumb == NULL) { 
            //crea los directorios necesarios 
            $subdir = "thumb"; 
            if($dir!=""){ 
                if(!file_exists($dir.$subdir)) mkdir($dir.$subdir); 
            } else { 
                if(!file_exists($subdir)) mkdir($subdir); 
            } 
            //asigna las variables         
            $name=$_FILES["imagen"]['name']; 
            $type=$_FILES["imagen"]['type']; 
            $thumb_name = $subdir."/thumb_".$unique.".jpg"; 
             
            //Imagen original en el servidor 
            $temp=$_FILES["imagen"]['tmp_name'];  
             
            //Objeto con el que trabajará el programa 
            if($type=="image/pjpeg"){ 
                $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n");  
            } 
            if($_FILES["imagen"]['type']=="image/gif"){ 
                $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
                $thumb_name = str_replace(".gif", ".jpg", $thumb_name); 
            } 
            if($_FILES["imagen"]['type']=="image/x-png"){ 
                $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
                $thumb_name = str_replace(".png", ".jpg", $thumb_name); 
            } 
            //Para que acepte la transparencia del PNG 
            imagealphablending($img, true); 
            //INICIA PROCESO 
                $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen 
                $ratio_thumb = ($dimensiones[0] / $anchura_thumb); 
                $altura_thumb = round($dimensiones[1] / $ratio_thumb); 
                $thumb = imagecreatetruecolor($anchura_thumb,$altura_thumb); //crea la nueva imagen 
                $FFF = imagecolorallocate($img, 255,255,255); 
                imagefill($thumb, 0, 0, $FFF); 
                imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura_thumb, $altura_thumb, $dimensiones[0], $dimensiones[1]);//reescala el thumbnail 
                //INICIA WATERMARK THUMB 
                if($watermark_thumb != ''){ 
                    $logo_thumb = imagecreatefrompng($watermark_thumb); 
                    $margen = $wmdist; //distancia entre el watermark y la orilla 
                    $logoW_thumb =imagesx($logo_thumb); //Anchura del logo 
                    $logoH_thumb =imagesy($logo_thumb); //Altura del logo 
                    switch ($wmhorz){ 
                        case "L": 
                            $xposThumb=$margen/2; 
                            break; //end L 
                        case "R": 
                            $xposThumb=$anchura_thumb-$logoW_thumb-($margen/2); //posición en x del wm 
                            break; //end R 
                    } //end switch hotz 
                    switch ($wmvert){ 
                        case "T": 
                            $yposThumb=$margen/2; 
                            break; //end T 
                        case "B": 
                            $yposThumb=$altura_thumb-$logoH_thumb-($margen/2); //posición en y del wm 
                            break; //end B 
                    } //end switch vert 
                    imagecopy($thumb, $logo_thumb, $xposThumb, $yposThumb, 0, 0, $logoW_thumb, $logoH_thumb); //Pone el logo 
                    imagedestroy($logo_thumb); //destruye el logo después de usarlo 
                } 
                //TERMINA WATERMARK THUMB 
                imagejpeg($thumb,"$dir$thumb_name", $c2);//mueve la imagen al server (el segundo parámetro es la calidad) 
                imagedestroy($thumb); //destruye thumb 
                imagedestroy($img); //destruye la imagen "origen" 
                 
            } else { 
             
                $thumb_name = $unique."_".$image_name; 
             
            } // end if != 0 
             
        //TERMINA THUMBNAIL 
    }