Foros del Web » Programando para Internet » PHP »

como puedo girar la foto

Estas en el tema de como puedo girar la foto en el foro de PHP en Foros del Web. Buenas tardes amigos a ver si me podéis ayudar, tengo la siguiente función para re dimensionar una foto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original //Ruta ...
  #1 (permalink)  
Antiguo 14/08/2014, 08:10
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años
Puntos: 5
como puedo girar la foto

Buenas tardes amigos

a ver si me podéis ayudar,

tengo la siguiente función para re dimensionar una foto:

Código PHP:
Ver original
  1. //Ruta de la imagen original
  2.     $rutaImagenOriginal = $archivo['tmp_name'];
  3.     //Creamos una variable imagen a partir de la imagen original
  4.     $img_original = imagecreatefromjpeg($rutaImagenOriginal);
  5.     //Se define el maximo ancho y alto que tendra la imagen final
  6.     $max_ancho = 200;
  7.     $max_alto = 200;
  8.     //obtengo Ancho y alto de la imagen original guardandolo en las variables
  9.     list($ancho,$alto) = getimagesize($rutaImagenOriginal);
  10.     //Se calcula ancho y alto de la imagen final
  11.     $x_ratio = $max_ancho / $ancho;
  12.     $y_ratio = $max_alto / $alto;
  13.     //Si el ancho y el alto de la imagen no superan los maximos,
  14.     //ancho final y alto final son los que tiene actualmente
  15.     if( ($ancho <= $max_ancho) && ($alto <= $max_alto) ){//Si ancho
  16.         $ancho_final = $ancho;
  17.         $alto_final = $alto;
  18.     }
  19.     /*
  20.     * si proporcion horizontal*alto mayor que el alto maximo,
  21.     * alto final es alto por la proporcion horizontal
  22.     * es decir, le quitamos al ancho, la misma proporcion que
  23.     * le quitamos al alto
  24.     *
  25.     */
  26.     elseif (($x_ratio * $alto) < $max_alto){
  27.     $alto_final = ceil($x_ratio * $alto);
  28.     $ancho_final = $max_ancho;
  29.     }
  30.     /*
  31.     * Igual que antes pero a la inversa
  32.     */
  33.     else{
  34.     $ancho_final = ceil($y_ratio * $ancho);
  35.     $alto_final = $max_alto;
  36.     }  
  37.     //Creamos una imagen en blanco de tamaño $ancho_final  por $alto_final .
  38.     $tmp=imagecreatetruecolor($ancho_final,$alto_final);
  39.    
  40.     //Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp)
  41.     imagecopyresampled($tmp,$img_original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
  42.     //Se destruye variable $img_original para liberar memoria
  43.     imagedestroy($img_original);
  44.     //Definimos la calidad de la imagen final
  45.     $calidad=95;
  46.     //Se crea la imagen final en el directorio indicado
  47.     if(imagejpeg($tmp,"images/fotoPerfil/".$_SESSION['idpersona'].".jpg",$calidad)){
  48.         echo 1;
  49.     }else{
  50.         echo 0;
  51.     }

El problema es que siempre que pongo una foto con formato horizontal lo hace bien pero si pongo una foto en formato vertical,(que todas serán así porque son foto de perfil), las gira y me las pone en horizontal...

Alguien me puede ayudar.

Muchas gracias desde yá¡¡

Etiquetas: foto, girar, variable
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 21:05.