# Procesamiento de imágenes y GD

# Introducción

PHP no se limita a la generación de páginas HTML. También puede servir para crear y manipular imágenes, en una amplia variedad de formatos, como GIF, PNG, JPEG, WBMP y XPM. Además, PHP puede generar directamente imágenes para el navegador, con la biblioteca GD. GD y PHP también necesitarán otras bibliotecas, dependiendo de los formatos que se deseen utilizar.

Las funciones PHP pueden usarse para obtener las dimensiones de las imágenes en los formatos JPEG, GIF, PNG, SWF, TIFF y JPEG2000.

Con la extensión exif, se podrá trabajar con las informaciones almacenadas en los encabezados de las imágenes JPEG y TIFF. De esta manera, se podrán leer las metadatos generadas por los dispositivos digitales. Las funciones exif no requieren la biblioteca GD.

> Nota: Léase la sección sobre los requisitos para saber cómo extender las capacidades de las funciones sobre imágenes para leer, escribir y modificar imágenes. Para leer las metadatos de las fotos tomadas con dispositivos digitales, se debe utilizar la extensión exif mencionada anteriormente.

> Nota: La función getimagesize() no requiere la extensión GD.

Precaución

Mientras que la versión empaquetada de la biblioteca GD utiliza el gestor de memoria Zend para asignar memoria, las versiones del sistema no lo hacen, por lo que memory_limit no se aplica.

GD soporta un gran número de formatos; a continuación se presenta una lista de formatos soportados por GD junto con notas que especifican la disponibilidad del soporte en lectura/escritura.

Formatos soportados por GD
Formato | Soporte en lectura | Soporte en escritura | Notas
--- | --- | --- | ---
JPEG | `true` | `true` |
PNG | `true` | `true` |
GIF | `true` | `true` |
XBM | `true` | `true` |
XPM | `true` | `false` |
WBMP | `true` | `true` |
WebP | `true` | `true` |
BMP | `true` | `true` | Disponible a partir de PHP 7.2.0

Aunque la mayoría de los formatos estén disponibles con soporte en lectura y escritura en la tabla anterior, esto no significa que PHP haya sido compilado con el soporte adecuado. Para conocer los formatos soportados por GD durante la compilación, utilícese la función gd_info(); para más información sobre el soporte durante la compilación de uno o varios formatos, consúltese el capítulo sobre la instalación.

- Instalación/Configuración
  - Requerimientos
  - Instalación
  - Configuración en tiempo de ejecución
  - Tipos de recursos
- Constantes predefinidas
- Ejemplos
  - Creación de una imagen PNG con PHP
  - Añadir un sello digital a imágenes utilizando un canal Alpha
  - Ejemplo con imagecopymerge para crear un sello digital translúcido
- Funciones de GD e Imágenes
  - gd_info — Devuelve información sobre la biblioteca GD instalada
  - getimagesize — Devuelve el tamaño de una imagen
  - getimagesizefromstring — Obtiene el tamaño de una imagen desde una cadena
  - image_type_to_extension — Devuelve la extensión del fichero para el tipo de imagen
  - image_type_to_mime_type — Obtiene el tipo MIME para el tipo de imagen devuelto por getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  - image2wbmp — Enviar la imagen al navegador o a un archivo
  - imageaffine — Devuelve una imagen que contiene la imagen fuente transformada, utilizando opcionalmente una zona de recorte
  - imageaffinematrixconcat — Concatena dos matrices de transformación afín
  - imageaffinematrixget — Obtener una matriz de transformación afín
  - imagealphablending — Modifica el modo de mezcla de una imagen
  - imageantialias — Activar o desactivar las funciones de antialias
  - imagearc — Dibuja una elipse parcial
  - imageavif — Enviar la imagen al navegador o a un archivo
  - imagebmp — Muestra o guarda una imagen BMP en el navegador o en un fichero
  - imagechar — Dibuja un carácter horizontalmente
  - imagecharup — Dibuja un carácter verticalmente
  - imagecolorallocate — Asigna una coloración para una imagen
  - imagecolorallocatealpha — Asigna un color a una imagen
  - imagecolorat — Devuelve el índice del color de un píxel dado
  - imagecolorclosest — Devuelve el índice de la color más cercana a una color dada
  - imagecolorclosestalpha — Devuelve el color más cercano, teniendo en cuenta el canal alpha
  - imagecolorclosesthwb — Obtiene el índice de la color especificada con su tono, blanco y negro
  - imagecolordeallocate — Elimina un color de una imagen
  - imagecolorexact — Devuelve el índice del color especificado
  - imagecolorexactalpha — Devuelve el índice de un color con su canal alfa
  - imagecolormatch — Hace que las colores de la versión palette de una imagen coincidan más con las de su versión truecolor
  - imagecolorresolve — Devuelve el índice de la color dada, o la más cercana posible
  - imagecolorresolvealpha — Devuelve un índice de color o su alternativa más cercana, incluyendo el canal alpha
  - imagecolorset — Cambia el color en una paleta en el índice dado
  - imagecolorsforindex — Retorna el color asociado a un índice
  - imagecolorstotal — Calcula el número de colores de una paleta
  - imagecolortransparent — Define la color transparente
  - imageconvolution — Aplica una matriz de convolución 3x3, utilizando el coeficiente y el desplazamiento
  - imagecopy — Copia una parte de una imagen
  - imagecopymerge — Copia y fusiona una parte de una imagen
  - imagecopymergegray — Copia y fusiona una parte de una imagen en niveles de gris
  - imagecopyresampled — Copia, redimensiona y reinterpolación de una imagen
  - imagecopyresized — Copia y redimensiona una parte de una imagen
  - imagecreate — Crea una nueva imagen con paleta
  - imagecreatefromavif — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefrombmp — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromgd — Crea una nueva imagen a partir de un fichero GD o de una URL
  - imagecreatefromgd2 — Crea una nueva imagen a partir de un fichero GD2 o de una URL
  - imagecreatefromgd2part — Crea una nueva imagen a partir de una parte de un archivo GD2 o de una URL
  - imagecreatefromgif — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromjpeg — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefrompng — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromstring — Crea una imagen a partir de una cadena
  - imagecreatefromtga — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromwbmp — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromwebp — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromxbm — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatefromxpm — Crear una nueva imagen a partir de un archivo o una URL
  - imagecreatetruecolor — Crea una nueva imagen en colores verdaderos
  - imagecrop — Recorta una imagen en el rectángulo dado
  - imagecropauto — Recorta una imagen automáticamente utilizando uno de los modos disponibles
  - imagedashedline — Dibuja una línea punteada
  - imagedestroy — Destruye una imagen
  - imageellipse — Dibuja una elipse
  - imagefill — Relleno
  - imagefilledarc — Dibuja un arco parcial y lo rellena
  - imagefilledellipse — Dibuja una elipse llena
  - imagefilledpolygon — Dibuja un polígono relleno
  - imagefilledrectangle — Dibuja un rectángulo relleno
  - imagefilltoborder — Rellena una región con un color específico
  - imagefilter — Aplica un filtro a una imagen
  - imageflip — Devuelve una imagen utilizando el modo proporcionado
  - imagefontheight — Devuelve la altura de la fuente
  - imagefontwidth — Devuelve el ancho de la fuente
  - imageftbbox — Calcula el rectángulo de delimitación para un texto, utilizando la fuente actual y freetype2
  - imagefttext — Escribe texto en una imagen con la fuente actual FreeType 2
  - imagegammacorrect — Aplica una corrección gamma a la imagen GD
  - imagegd — Genera una imagen en formato GD, hacia el navegador o un fichero
  - imagegd2 — Genera una imagen en formato GD2, hacia el navegador o un fichero
  - imagegetclip — Obtiene el rectángulo de recorte
  - imagegetinterpolation — Obtiene el método de interpolación
  - imagegif — Enviar la imagen al navegador o a un archivo
  - imagegrabscreen — Captura la pantalla completa
  - imagegrabwindow — Captura una ventana
  - imageinterlace — Activa o desactiva el entrelazado
  - imageistruecolor — Determina si una imagen es una imagen truecolor
  - imagejpeg — Enviar la imagen al navegador o a un archivo
  - imagelayereffect — Activa la opción de mezcla alfa para utilizar los efectos de libgd
  - imageline — Dibuja una línea
  - imageloadfont — Carga una nueva fuente
  - imageopenpolygon — Dibuja un polígono abierto
  - imagepalettecopy — Copia la paleta de una imagen a otra
  - imagepalettetotruecolor — Convierte una imagen basada en una paleta a color verdadero
  - imagepng — Envía una imagen PNG a un navegador o a un fichero
  - imagepolygon — Dibuja un polígono
  - imagerectangle — Dibuja un rectángulo
  - imageresolution — Recupera o define la resolución de la imagen
  - imagerotate — Rota una imagen en un ángulo
  - imagesavealpha — Determina si la información completa del canal alpha debe conservarse al guardar imágenes
  - imagescale — Redimensiona una imagen utilizando una altura y una anchura proporcionadas
  - imagesetbrush — Modifica el pincel para el dibujo de líneas
  - imagesetclip — Establece el rectángulo de recorte
  - imagesetinterpolation — Define el método de interpolación
  - imagesetpixel — Dibuja un píxel
  - imagesetstyle — Configura el estilo para el dibujo de líneas
  - imagesetthickness — Modifica el grosor de una línea
  - imagesettile — Modifica la imagen utilizada para el mosaico
  - imagestring — Dibuja una cadena horizontal
  - imagestringup — Dibuja una cadena vertical
  - imagesx — Devuelve el ancho de una imagen
  - imagesy — Devuelve la altura de la imagen
  - imagetruecolortopalette — Convierte una imagen en colores verdaderos a imagen con paleta
  - imagettfbbox — Devuelve el rectángulo que rodea un texto dibujado con una fuente TrueType
  - imagettftext — Dibuja un texto con una fuente TrueType
  - imagetypes — Devuelve los tipos de imágenes soportados por la versión actual de PHP
  - imagewbmp — Enviar la imagen al navegador o a un archivo
  - imagewebp — Muestra una imagen WebP hacia un navegador o un fichero
  - imagexbm — Genera una imagen en formato XBM
  - iptcembed — Incorpora datos binarios IPTC en una imagen JPEG
  - iptcparse — Analiza un bloque binario IPTC y busca las etiquetas simples
  - jpeg2wbmp — Convierte una imagen JPEG en imagen WBMP
  - png2wbmp — Convierte una imagen PNG en imagen WBMP
- GdImage — La clase GdImage
- GdFont — La clase GdFont

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open