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>
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>
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);
?>