Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/11/2008, 00:14
Avatar de djdraft
djdraft
 
Fecha de Ingreso: abril-2008
Mensajes: 118
Antigüedad: 16 años, 1 mes
Puntos: 0
Pregunta Funcion que al usar para redimensionar imagenes en algunos tipos de imagenes da error

Hola amigos tengo una funcion para redimensionar imagenes sin importar el tipo o tamanio la cual va perfectamente, pero ocurre un problema en algunos caso no se porque algunas imagenes me salen negra completamente y la funcion explota aqui les dejo la funcion para ver si me pueden ayudar

Código PHP:
 function thumbjpeg($imagen,$altura) {

  
//OBTENGO EL TIPO DE FOTO
  
$posicion strrpos($_FILES['img']['name'][1],'.');
  
$extension substr($_FILES['img']['name'][1], $posicion);
  
  
     
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
     
$dir_thumb "thumbs/";
     
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
     // el thumbnail se llamaría "tn_imagen1.jpg"
     
$prefijo_thumb "tm_";

     
// Aquí tendremos el nombre de la imagen.
     
$nombre=basename($imagen);
     
// Aquí la ruta especificada para buscar la imagen.
     
$camino=dirname($imagen)."/";

     
// Intentamos crear el directorio de thumbnails, si no existiera previamente.
     
if (!file_exists($camino.$dir_thumb))
          @
mkdir ($camino.$dir_thumb0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);

 
            if(
$extension==".jpg"){
      
          
$img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
                                   }
                                   
            else if(
$extension==".gif"){
        
$img = @imagecreatefromgif($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
            
                    }
            if(
$extension==".png"){
        
$img = @imagecreatefrompng($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
                    }
                                   
          
// miramos el tamaño de la imagen original...
          
$datos getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");

          
// intentamos escalar la imagen original a la medida que nos interesa
          
$ratio = ($datos[1] / $altura);
          
$anchura round($datos[0] / $ratio);

          
// esta será la nueva imagen reescalada
          
$thumb imagecreatetruecolor($anchura,$altura);

          
// con esta función la reescalamos
          
imagecopyresampled ($thumb$img0000$anchura$altura$datos[0], $datos[1]);
     
          
          
// voilà la salvamos con el nombre y en el lugar que nos interesa.
         
if($extension==".jpg"){ 
          
          
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
                                }
        elseif(
$extension=".gif"){
           
imagegif($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
        }
        if(
$extension==".png"){   
            
imagepng($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
                                }
        
     }
?> 
__________________
<img src="http://i280.photobucket.com/albums/kk197/djdraft22/DR.jpg">