Historia de ImageMagick
Juro por mi vida y por mi amor a ella que jamás viviré por causa de otro hombre, ni le pediré a otro hombre que viva por la mía. -- John Galt en «La rebelión de Atlas», de Ayn Rand
ImageMagick comenzó con una petición de mi supervisor en DuPont, el Dr. David Pensak, de mostrar imágenes generadas por ordenador en un monitor capaz de mostrar únicamente 256 colores distintos de forma simultánea.
En 1987, los monitores que podían mostrar imágenes a todo color de 24 bits eran raros y bastante caros. En DuPont había una multitud de químicos y biólogos, pero muy pocos eran informáticos con quienes consultar. En su lugar, recurrí a Usenet en busca de ayuda y publiqué una petición de un algoritmo para reducir imágenes de 24 bits a 256 colores. Paul Raveling, del Information Sciences Institute de la USC, respondió no solo con una solución, sino con una que ya estaba en código fuente y disponible desde el sitio FTP de la USC. A lo largo de los años siguientes, tuve frecuentes oportunidades de obtener ayuda con otros problemas espinosos de informática que encontraba en el transcurso de mi trabajo en DuPont. Con el tiempo me sentí impulsado a dar las gracias por la ayuda que recibí de la gente conocedora de Usenet. Decidí publicar libremente al mundo las herramientas de procesamiento de imágenes que había desarrollado, para que otros pudieran beneficiarse de mis esfuerzos.
En 1990 había pocas herramientas de procesamiento de imágenes disponibles libremente, así que esperaba una acogida entusiasta. Antes de que fuera posible una publicación, el Dr. Pensak tuvo que convencer a la alta dirección de DuPont para que regalara lo que podían percibir como una valiosa propiedad intelectual. Sospecho que aceptaron simplemente porque ImageMagick no tenía base química ni biológica, por lo que no comprendieron su valor para la empresa. En cualquier caso, ImageMagick no estaría disponible hoy si DuPont no hubiera transferido los derechos de autor a ImageMagick Studio LLC. ImageMagick se publicó en el grupo comp.archives de Usenet el 1 de agosto de 1990.
Tras la publicación de ImageMagick, recibí alguna que otra petición de una mejora, un informe de un error o una contribución a la base de código. A mediados de los años 90, publiqué la culminación de esos esfuerzos como ImageMagick 4.2.9. En aquel momento pensaba que ImageMagick estaba terminado. Lo utilizaban miles de usuarios en todo el mundo, e incluso empezaba a aparecer como parte de un nuevo sistema operativo distribuido libremente llamado «Linux».
La siguiente generación de ImageMagick, la versión 5, comenzó cuando Bob Friesenhahn se puso en contacto conmigo y sugirió que mejorara la interfaz de programación de aplicaciones para que los usuarios pudieran aprovechar los algoritmos de procesamiento de imágenes desde otros lenguajes o scripts. Bob también escribió un envoltorio en C++ para ImageMagick llamado Magick++, y empezó a contribuir con mejoras como el cargador de módulos, la identificación automática de archivos y los conjuntos de pruebas. Mientras tanto, el proyecto sumó algunos otros colaboradores destacados: Glenn Randers-Pehrson, William Radcliffe y Leonard Rosenthol. Para entonces, ImageMagick era utilizado por decenas de miles de usuarios, que reaccionaban con brusquedad cuando una nueva versión rompía una llamada a la API o un script existente. Los demás miembros del grupo querían congelar la API y la línea de comandos, pero yo sentía que ImageMagick aún no era del todo lo que había imaginado que podía ser. Bob y los demás crearon una bifurcación de ImageMagick mientras yo continuaba desarrollando ImageMagick.
No trabajé solo por mucho tiempo. Anthony Thyssen se puso en contacto conmigo acerca de las deficiencias de los programas de línea de comandos de ImageMagick. Señaló que la línea de comandos resultaba confusa al tratar con más de una imagen. Sugirió un método ordenado y bien definido para manejar la línea de comandos, y esto se convirtió en la versión 6 de ImageMagick. Sus esfuerzos están detallados en sus páginas web, Examples of ImageMagick Usage. Recomiendo encarecidamente que explores su sitio. Ha ilustrado el poder de ImageMagick de maneras que incluso yo desconocía que fueran posibles.
Otro colaborador destacado, Fred Weinhaus, pone a disposición una multitud de scripts de línea de comandos que realizan transformaciones geométricas, desenfoques, enfoques, detección de bordes, eliminación de ruido y manipulaciones de color. Glenn Randers-Pehrson es nuestro gurú de PNG y realiza otras valiosas contribuciones. Dirk Lemstra hizo, y sigue haciendo, numerosas mejoras para hacer ImageMagick más robusto en Windows y distribuye un envoltorio para .NET, Magick.NET.
El diseño de ImageMagick es un proceso evolutivo, en el que los esfuerzos de diseño e implementación sirven para influir y guiar mutuamente el progreso. Con la versión 7 de ImageMagick, mejoramos el diseño a partir de las lecciones aprendidas de la implementación de la versión 6. ImageMagick se diseñó originalmente para mostrar imágenes RGB en un servidor X Windows. Con el tiempo extendimos la compatibilidad a las imágenes RGBA y luego al formato de imagen CMYK y CMYKA. Con la versión 7 de ImageMagick, extendemos la compatibilidad a espacios de color arbitrarios con un número arbitrario de canales de píxel. Además, ImageMagick 7 almacena los canales de píxel como números de coma flotante, lo que permite valores fuera de banda (por ejemplo, negativos) y reduce el error de redondeo.
Cristy
Arquitecto principal de ImageMagick