PHP incluye la biblioteca GD, la cual permite manipular imágenes en diferentes formatos como GIF, PNG, JPEG, entre otros.
En la entrada anterior aprendimos a redimensionar imágenes, en esta ocasión aprenderemos a girar imágenes con la función imagerotate
.
Habilitar biblioteca GD
La biblioteca GD está incluida al descargar PHP, para verificar que está habilitada debemos abrir el archivo de configuración php.ini
y buscar la linea ;extension=gd
, quitamos el punto y coma (;), guardamos el archivo y reiniciamos el servidor web.
Ejemplo con imagen JPEG
En este ejemplo debemos agregar la ubicación y nombre de la imagen que vamos a girar, así como el ángulo de giro en el sentido contrario de las agujas del reloj.
<?php $nombre_imagen = 'foto.jpg'; $grados = -90; // Cabecera con tipo de contenido header('Content-type: image/jpeg'); // Crea una nueva imagen a partir de un archivo $origen = imagecreatefromjpeg($nombre_imagen); // Rotar imagen $rotar = imagerotate($origen, $grados, 0); //Guardamos la imagen girada con calidad de 100 imagejpeg($rotar, $nombre_imagen, 100); // Imprime la imagen imagejpeg($rotar); // Liberar la memoria imagedestroy($origen); imagedestroy($rotar); ?>
El resultado será una imagen con giro de -90 grados, remplazará la anterior y la imprimirá en pantalla.
Si quieres agregar valores positivos el ángulo serían 270° para que el resultado sea el mismo, recuerda que el giro es contrario a las agujas del reloj.
Usamos una imagen con extensión jpg, pero soporta otras extensiones, en caso de imágenes png debe cambiar la función imagecreatefromjpeg()
a imagecreatefrompng()
y imagejpeg()
a imagepng()
, así mismo se pueden cambiar las funciones para imágenes GIF, entra otras.
Cuando se trabaja con la función imagepng()
, el tercer valor es el nivel de compresión en una escala de 0 (sin compresión) hasta 9.
Tutorial en vídeo:
Documentación de la biblioteca GD.