En ocasiones nos puede interesar generar una imagen desde un script en PHP (por ejemplo un gráfico o aplicarle el efecto polaroid que expliqué aquí hace poco). Para enviarla al navegador existen varias funciones de la librería GD dependiendo del formato que queramos, que son:
| Función | Formato |
|---|---|
| image2wbmp | WBMP |
| imagegd2 | GD2 |
| imagegd | GD |
| imagegif | GIF |
| imagejpeg | JPEG |
| imagepng | PNG |
| imagexmb | XBM |
Estas funciones nos pueden servir también para guardar la imagen en un archivo, pasándole el nombre de este, y nos permiten algunos parámetros adicionales como puede ser la calidad de la imagen, aunque esto último varía dependiendo del formato.
Lo que tenemos que hacer es enviarle al navegador la cabecera ‘Content-Type’ con el MIME Type del formato que queramos y después llamar a alguna de estas funciones indicándole un recurso de imagen. Aquí un pequeño ejemplo que carga una imagen llamada ‘imagenx.jpg’, donde x es un valor que se pasa como parámetro al script:
<?php
//El nombre de la imagen
$nombreImagen = 'imagen'.$_GET['id'].'.jpg';
//Cargamos la imagen en formato JPEG
$imagen = imagecreatefromjpeg($nombreImagen);
//Enviamos la cabecera Content-Type
header('Content-Type: image/jpeg');
//Enviamos la imagen al navegador
imagejpeg($imagen);
//Destruimos la imagen
imagedestroy($imagen);
?>
Además de usar la función imagejpeg hemos usado la función imagecreatefromjpeg, que carga la imagen a partir de un fichero JPEG. Lo mejor, como siempre recomiendo, es mirar la documentación de GD, donde vienen explicadas todas las funciones de esta librería.