Como rotar una imagen con PHP
No es muy habitual pero podría darse la situación de que tengamos una imagen en horizontal y necesitamos mostrarla en vertical. La primera idea para conseguir esto es utilizar photoshop para rotar la imagen pero el objetivo de este artículo es aprender como hacer mediante programación PHP.
Es muy sencillo. PHP dispone de unas funciones en su librería que nos facilitan mucho el trabajo.
Fíjate en el siguiente código:
<?php
//Imagen inicial horizontal
$image = 'ciudad.jpg';
//Destino de la nueva imagen vertical
$image_rotate = 'ciudad_rotate.jpg';
//Definimos los grados de rotacion
$degrees = 90;
//Creamos una nueva imagen a partir del fichero inicial
$source = imagecreatefromjpeg($image);
//Rotamos la imagen 90 grados
$rotate = imagerotate($source, $degrees, 0);
//Creamos el archivo jpg vertical
imagejpeg($rotate, $image_rotate);
?>
Donde tenemos:
- Una imagen inicial que se muestra en horizontal
- Definimos el nombre de la imagen de destino
- Definimos los grados de rotación. Nos interesa rotarlo 90 grados
- Utilizamos la función imagecreatefromjpeg() para crear una nueva imagen a partir de una inicial
- Rotamos la imagen con el ángulo deseado con la función imagerotate()
- Y finalmente creamos el archivo jpg con la imagen en vertical con la función imagejpeg()
Autor
Escrito por Jose Aguilar - Director ejecutivo y tecnológico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.
El problema es que gira la imagen DENTRO DEL MARGEN de la imagen, esto hace que al girarla 90° y siendo diferentes el ancho y alto, ponga áreas negras y se pierda parte de la imagen, la idea sería girar la imagen y conservar las dimensiones, es decir si la imagen mide 120px * 300px al girarla quede 300px * 120px. No se si me explique bien