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, $gra, 0);
imagealphablending($im, true);
imagesavealpha($im, true);
imagepng($im);
?>
Un saludo y gracias de antemano