Foros del Web » Programando para Internet » PHP »

Girar una imagen al redimensionarla

Estas en el tema de Girar una imagen al redimensionarla en el foro de PHP en Foros del Web. Buenas Mi problema es que estoy aprendiendo a tratar imagenes con php, y todavia no manejo bien ni entiendo del todo las funciones necesarias para ...
  #1 (permalink)  
Antiguo 23/06/2009, 12:54
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Girar una imagen al redimensionarla

Buenas

Mi problema es que estoy aprendiendo a tratar imagenes con php, y todavia no manejo bien ni entiendo del todo las funciones necesarias para trabajar con ellas.

Estoy intentando subir al servidor imagenes, y redimensionarlas, de manera que todas las imagenes tengan la misma medida, y a su vez, crear un thumb por cada una de ellas. Bueno, mas o menos lo he conseguido, ya tengo mis thumbs y mis imagenes redimensionadas, el problema es que, cuando las imprimo por pantalla, con un <img src> normal y corrienta, las que son verticales me aparecen ¿en horizontal? Si miro en el servidor, las imagenes aparecen tambien giradas.

He probado con la funcion getimagesize para ver las dimensiones de las imagenes. Las horizontales me dan, por ejemplo, 2240 x 1488, pero las verticales me dan lo mismo, en vez de darme, por ejemplo, 1488 x 2240 (que es como aparece en la informacion de la imagen en el sistema operativo)

Pensando, he llegado a la conclusion de que, cuando hago una foto con una camara, al pasarlas al ordenador, las verticales las tengo que girar para poder verlas correctamente. ¿Puede estar ahi el problema?

He pensado usar alguna funcion que gire las imagenes, pero, a parte de parecerme una chapuza, existe el problema de que algunas imagenes estan giradas para un lado, y otras para otro, por lo que seria imposible determinar en que sentido girar la imagen.

¿Como puedo corregir este funcionamiento? Admito cualquier idea

Saludossss
  #2 (permalink)  
Antiguo 23/06/2009, 12:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: Girar una imagen al redimensionarla

Muestra el codigo que sube y redimensiona las imagenes, el problema debe estar alli.
  #3 (permalink)  
Antiguo 24/06/2009, 10:04
 
Fecha de Ingreso: noviembre-2006
Mensajes: 102
Antigüedad: 18 años
Puntos: 1
Respuesta: Girar una imagen al redimensionarla

El codigo que estoy usando es el siguiente

Código PHP:
//carga de imagenes
//se comprueba que se ha introducido un archivo en el campo correspondiente
if(isset($_FILES['archivo']) && !empty($_FILES['archivo']['name'])) { 
    
//se comprueba si existe la carpeta de imagenes y si no, se crea
    
$ruta_carga "imagenes/";
    if (!
is_dir($ruta_carga)){
        
mkdir($ruta_carga,0755);
    }
    
//comprueba que el archivo sea jpeg, y en caso afirmativo se sigue
    
if ($_FILES['archivo']['type'] == 'image/jpeg'){
        
$cont 1;
               
//Las imagenes se guardan como numeros consecutivos
               //Se escanea la carpeta para encontrar el primer numero disponible
        
while (file_exists($ruta_carga."/".$cont.".jpg")){
            
$cont++;
        }
        
$nombre $cont.".jpg";
        
//Se guarda el archivo subido como "temp.jpg"
$carga=move_uploaded_file($_FILES['archivo']'tmp_name'],addslashes($ruta_carga."/temp.jpg"));
            
        
//se crea un thumb de la imagen
        
$thumb_anchura 50;
        
$thumb_altura 50;
        
$thumb_ruta $ruta_carga."/thumb_".$cont.".jpg";
        
$img_nueva_calidad 100;
        
               
// se crea una imagen desde el original 
        
$img ImageCreateFromJPEG($ruta_carga."/temp.jpg"); 
        
               
// crear una imagen nueva 
        
$thumb imagecreatetruecolor($thumb_anchura,$thumb_altura); 
        
               
// redimensiona la imagen original copiandola en la imagen 
            
ImageCopyResized($thumb,$img,0,0,0,0,$thumb_anchura,$thumb_altura,ImageSX($img),ImageSY($img)); 
        
               
// guardar la nueva imagen redimensionada donde indicia $img_nueva 
        
ImageJPEG($thumb,$thumb_ruta,$img_nueva_calidad);
        
ImageDestroy($img);
        
        
chmod($ruta_carga."/thumb_".$cont.".jpg"0755); 
Reitero que soy nuevo en esto, por lo que puedo estar metiendo un patón en cualquier punto del código.
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 22:22.