28 de septiembre de 2012

Procesamiento de Imagenes en PHP

English: Logo for ImageMagick
Logo for ImageMagick (Photo credit: Wikipedia)
En PHP se disponen de algunas utilidades para hacer el procesamiento de imágenes. Este procesamiento de imágenes puede desde proveer las funcionalidades básicas tanto en:
  •  Edición de Imágenes: Tareas como el redimensionar imágenes, recorte de gráficas o funciones de cambio de formato entre los formatos de imágenes clásicos: TIF, JPG, GIF y PNG.
  •  Creación de gráficas usando Primitivas de Dibujo

Las principales utilidades para el procesamiento de imágenes son:

  • Librería GD: esta consiste en una librería de PHP que permite el procesamiento de imágenes a nivel básico. 
  • GrapichsMagick: Esta aplicación que es prácticamente una Navaja Suiza en lo referente al procesamiento de imágenes, según las propias palabras de los creadores de la aplicación. GraphicsMagick surge como una derivación de ImageMagick. Se puede usar desde PHP usando GMagick.
  • ImageMagick: Cuando la librería GD no es suficiente, o el PHP que disponemos no está compilado con GD, o GD ocupado demasiados recursos (memoria) entonces ImageMagick puede ser una alternativa a considerar. ImageMagick no es una extensión de PHP, sino que es una aplicación por si sola que se puede usar en muchos lenguajes (Perl, Python, C), y generalmente se integra a PHP mediante la función Exec(), que permite ejecutar ordenes del SHELL desde PHP. 
  • Cairo: Es una poderosa extensión de PHP para el procesamiento de imágenes. Trabaja tanto con imágenes Raster, conocidas como archivos de mapas de bits (BMP, TIF, JPG), como con archivos vectoriales, muy utilizados en las aplicaciones de dibujo.
Muchas veces en el desarrollo de una aplicación web requerimos trabajar programáticamente con el procesamiento de imágenes, en ese situación conocer estas utilerías facilitan el trabajo de desarrollo.

Si por el contrario, se desea dotar al usuario de la aplicación las facilidades de dibujo, entonces se requirirá además de editores online de gráficas (javascript) que describiremos en otro artículo.