Foros del Web » Programando para Internet » PHP »

No consigo rotar las imagenes correctamente

Estas en el tema de No consigo rotar las imagenes correctamente en el foro de PHP en Foros del Web. Muy buenas a todos. Necesitaría que me hechasen una mano con la rotación de las imágenes en php. Mi problema es que, cuando intento rotar ...
  #1 (permalink)  
Antiguo 09/05/2013, 01:36
 
Fecha de Ingreso: mayo-2013
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 0
No consigo rotar las imagenes correctamente

Muy buenas a todos.
Necesitaría que me hechasen una mano con la rotación de las imágenes en php.
Mi problema es que, cuando intento rotar una imagen (de tipo PNG) esta se redimensiona con cada giro y, las zonas que quedan vacías con esta redimensión, se ponen de color negro.

Espero que puedan ayudarme, porque llebo casi una semana trasteando por google y foros y no he conseguido resolverlo. Les dejo el código, por si desean probarlo.

Desde esta página cargo la imágen y los botones que indican la rotación de la misma

index.php
Código PHP:
<?php  session_start(); 
if(isset(
$_SESSION['grados'])){

}
else{
$_SESSION['grados']=0;
}

$_SESSION['src']='imagen.png';/*Aquí usen la imagen con trasparencias que deseen */ 
?>
<html>

<head>

</head>

<body>

<form action="cambio.php" method="post">
<input type="hidden" name="grados" value="<?php echo 30 ?>"/>
<input type="submit" value="sumar">
</form>

<form action="cambio.php" method="post">
<input type="hidden" name="grados" value="<?php echo -30 ?>"/>
<input type="submit" value="restar">
</form>

<img src="imagen.php" />

</body>
</html>
Desde esta, se incrementan o decrementan los grados que rotará la imagen, valiéndose de la variable de sesion grados

cambio.php
Código PHP:
<?php if(!isset($_SESSION)){
    
session_start();
}
$_SESSION['grados']=$_SESSION['grados']+$_POST['grados'];
echo 
$_SESSION['grados'];
?>
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=index.php">
</head>
<body>
</body>
</html>
Y en esta, es en la que se rota la imagen y la que redimensiona y elimina las transparencias.

imagen.php
Código PHP:
<?php if(!isset($_SESSION)){
    
session_start();
}

$loc=$_SESSION['src'];

$gra=$_SESSION['grados'];

$im=imagecreatefrompng($loc);        

$im imagerotate($im$gra0); 

imagealphablending($imtrue);

imagesavealpha($imtrue);

imagepng($im);
 
?>
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 09/05/2013, 05:28
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 5 meses
Puntos: 48
Respuesta: No consigo rotar las imagenes correctamente

¿Has probado con ImageMagick?
http://www.imagemagick.org/Usage/distorts/

Sería tan facil como:
Código BASH:
Ver original
  1. convert imagen-original.jpg -rotate <grados> +repage imagen-nueva.jpg
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España
  #3 (permalink)  
Antiguo 10/05/2013, 01:17
 
Fecha de Ingreso: mayo-2013
Mensajes: 6
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: No consigo rotar las imagenes correctamente

Lo voy a probar, muchas gracias

Etiquetas: correctamente, html, imagenes, rotar
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 02:23.