Foros del Web » Programando para Internet » PHP »

Problema con .JPG

Estas en el tema de Problema con .JPG en el foro de PHP en Foros del Web. este es mi codigo: Código PHP: <?php function  create_tb ( $img_o , $w_tb , $h_tb , $bg_color ){   $img_return = imagecreatetruecolor ( $w_tb , ...
  #1 (permalink)  
Antiguo 30/10/2008, 13:01
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Pregunta Problema con .JPG

este es mi codigo:
Código PHP:

<?php
function create_tb($img_o,$w_tb,$h_tb,$bg_color){
 
$img_return=imagecreatetruecolor($w_tb,$h_tb);
 if(isset(
$bg_color) && $bg_color != ""){
   
$colorimagecolorallocate($img_returnhexdec(substr($bg_color,0,2)), hexdec(substr($bg_color,2,2)), hexdec(substr($bg_color,4,2))); 
 }else{
  
$colorimagecolorallocate($img_return255255255);
 }
 
    
imagefilledrectangle($img_return00$w_tb$h_tb$color);
 
$wo=imagesx($img_o);
 
$ho=imagesy($img_o);
 
 if(
$wo >= $ho){ 
  
  
$wtb_copy=$w_tb;
  
$htb_copy=($ho*(($w_tb*100)/$wo))/100;
  
$xtb_copy=0;
  
$ytb_copy=($h_tb/2)-($htb_copy/2);
 }elseif(
$ho $wo){
  
  
$wtb_copy=($wo*(($h_tb*100)/$ho))/100;
  
$htb_copy=$h_tb
  
$xtb_copy=($w_tb/2)-($wtb_copy/2);
  
$ytb_copy=0;
 }
 
imagecopyresampled($img_return$img_o$xtb_copy$ytb_copy00$wtb_copy$htb_copy$wo$ho);
 return 
$img_return;
}




if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$valido true
$file=$_FILES["file"];
    if(
$file["type"]=="image/pjpeg" || $file["type"]=="image/jpg" || $file["type"]=="image/jpeg"){ 
        if(
$file["size"]>=5120000){
              
$valido false;
            
$msgimg="Error! La imagen es muy grande!";
         }
    }else{
        
$valido false;
        
$msgimg="Error!  la imagen debe ser .jpg";
    }


    
    if(
$valido){
     
$imgGrande=imagecreatefromjpeg($file["tmp_name"]);
     
$imggrande=create_tb($imgGrande,150,150,"FFFFFF");
    
imagejpeg($imggrande,"gfx/imagen_".$id.".jpg",60);
            

    }
}
?>
funciona con todas las imagenes JPG, pero con algunas imagenes JPG me tira este error:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: gd-jpeg, libjpeg: recoverable error: Corrupt JPEG data: 204 extraneous bytes before marker 0xd9 in C:\wamp\www\misitio\foto.php on line 52

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: 'C:\wamp\tmp\php16B.tmp' is not a valid JPEG file in C:\wamp\www\misitio\foto.php on line 52



que puede ser esto?
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #2 (permalink)  
Antiguo 30/10/2008, 13:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con .JPG

La causa: Corrupt JPEG data: 204 extraneous bytes before marker 0xd9, es decir tu archivo JPEG es invalido y por eso no lo puede procesar.

Saludos.
  #3 (permalink)  
Antiguo 14/11/2008, 12:39
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Respuesta: Problema con .JPG

mmm... y como hago, por que hay varios usuarios que tienen ese problema de jpg invalido.. no hay forma que el sistema corrija el jpg invalido?

por que puedo ver el JPG en paint, es mas si abro en paint y luego lo guardo y pruebo de nuevo subir con el formulario ahi si funciona y me sube el archivo perfecto...

el problema es el archivo, no mi codigo eso ya lo se.. pero si paint puede abrirlo a pesas de estar corrupto, no habria forma de que mi codigo tambien pudiera abrir a pesar de estar corrupto y transformarlo en un jpg valido????

es posible esto?
__________________
Firma:
Es mas dificil para el mono entender que el hombre desciende de el....

PD: Siempre doy karma al que me da una buena respuesta... ;0)
  #4 (permalink)  
Antiguo 14/11/2008, 13:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema con .JPG

Mmm no se si con GD puedas, pero puedes probar hacerlo con ImageMagick a ver si puedes recuperar la imagen.

Saludos
  #5 (permalink)  
Antiguo 14/11/2008, 13:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 350
Antigüedad: 15 años, 7 meses
Puntos: 31
Respuesta: Problema con .JPG

otra cosa que puede ser es la extensión de la imagen ose que tu php
distingue entre Minúscula .jpg y mayúsculas .JPG
entonces al no procesar la imagen. la función imagecreatefromjpeg() se queda en blanco.
como por ejemplo este código distingue entre, image.jpg y image.JPG
Código PHP:
<?php
$dir
=  'images/';
$pictures glob("$dir{*.jpg}"GLOB_BRACE); 
foreach(
$pictures as $p){
echo 
$p '<br>';
}
?>
entonces la solución es así, {*.jpg*.JPG}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:54.