Descarga y descompresión • Configuración • Compilación • Instalación • Instrucciones de compilación específicas de Linux • Instrucciones de compilación específicas de macOS • Instrucciones de compilación específicas de MinGW • Cómo afrontar problemas inesperados
Es posible que no quieras complicarte con la instalación avanzada en Linux o sistemas tipo Linux. En tal caso, también tienes la opción de instalar una versión binaria precompilada o, si aun así prefieres instalar desde el código fuente sin tanto lío, consulta las sencillas instrucciones de instalación desde el código fuente. Sin embargo, si quieres personalizar la configuración e instalación de ImageMagick en Linux o sistemas tipo Linux, comencemos.
Descarga y descompresión
ImageMagick se compila en una variedad de sistemas operativos Linux y similares a Linux, incluidos Linux, Solaris, FreeBSD, macOS y otros. Se requiere un compilador y, afortunadamente, casi todos los sistemas Linux modernos disponen de uno. Descarga ImageMagick-7.1.2-25.7z desde GitHub.
Descomprime la distribución con este comando:
tar xvzf ImageMagick.tar.gz
Ahora que tienes descomprimida la distribución del código fuente de ImageMagick para Linux/Linux, vamos a configurarla.
Configuración
El script configure examina tu entorno y decide qué puede reunir para conseguir compilar e instalar ImageMagick en tu sistema. Esto incluye encontrar un compilador, dónde están situados los archivos de cabecera del compilador (p. ej. stdlib.h) y si hay alguna biblioteca delegada disponible para que ImageMagick la use (p. ej. JPEG, PNG, TIFF, etc.). Si estás dispuesto a aceptar las opciones predeterminadas de configure y a compilar desde dentro del directorio del código fuente, basta con escribir:
cd ImageMagick-7.1.2-25
./configure
Observa la salida del script configure para verificar que encuentra todo lo que crees que debería. Presta especial atención a las últimas líneas de la salida del script. Por ejemplo, aquí tienes un informe reciente de nuestro sistema:
ImageMagick is configured as follows. Please verify that this configuration
matches your expectations.
Host system type: x86_64-unknown-linux-gnu
Build system type: x86_64-unknown-linux-gnu
Option Value
-------------------------------------------------------------------------------
Shared libraries --enable-shared=yes yes
Static libraries --enable-static=yes yes
Module support --with-modules=yes yes
GNU ld --with-gnu-ld=yes yes
Quantum depth --with-quantum-depth=16 16
High Dynamic Range Imagery
--enable-hdri=no no
Delegate Configuration:
BZLIB --with-bzlib=yes yes
Autotrace --with-autotrace=yes yes
DJVU --with-djvu=yes no
DPS --with-dps=yes no
FlashPIX --with-fpx=yes no
FontConfig --with-fontconfig=yes yes
FreeType --with-freetype=yes yes
GhostPCL None pcl6 (unknown)
GhostXPS None gxps (unknown)
Ghostscript None gs (8.63)
result_ghostscript_font_dir='none'
Ghostscript fonts --with-gs-font-dir=default
Ghostscript lib --with-gslib=yes no (failed tests)
Graphviz --with-gvc=yes yes
JBIG --with-jbig= no
JPEG v1 --with-jpeg=yes yes
JPEG-2000 --with-jp2=yes yes
LCMS --with-lcms=yes yes
LQR --with-lqr=yes no
Magick++ --with-magick-plus-plus=yes yes
OpenEXR --with-openexr=yes yes
PERL --with-perl=yes /usr/bin/perl
PNG --with-png=yes yes
RSVG --with-rsvg=yes yes
TIFF --with-tiff=yes yes
result_windows_font_dir='none'
Windows fonts --with-windows-font-dir=
WMF --with-wmf=yes yes
X11 --with-x= yes
XML --with-xml=yes yes
ZLIB --with-zlib=yes yes
X11 Configuration:
X_CFLAGS =
X_PRE_LIBS = -lSM -lICE
X_LIBS =
X_EXTRA_LIBS =
Options used to compile and link:
PREFIX = /usr/local
EXEC-PREFIX = /usr/local
VERSION = 6.4.8
CC = gcc -std=gnu99
CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
MAGICK_CFLAGS = -fopenmp -g -O2 -Wall -W -pthread
CPPFLAGS = -I/usr/local/include/ImageMagick
PCFLAGS = -fopenmp
DEFS = -DHAVE_CONFIG_H
LDFLAGS = -lfreetype
MAGICK_LDFLAGS = -L/usr/local/lib -lfreetype
LIBS = -lMagickCore-Q16 -llcms -ltiff -lfreetype -ljpeg -lfontconfig -lXext
-lSM -lICE -lX11 -lXt -lbz2 -lz -lm -lgomp -lpthread -lltdl
CXX = g++
CXXFLAGS = -g -O2 -Wall -W -pthread
Puedes influir en la elección del compilador, los indicadores de compilación o las bibliotecas del script configure estableciendo valores iniciales para las variables en la línea de comandos de configure. Estas incluyen, entre otras:
- CC
- Nombre del compilador de C (p. ej. cc -Xa) a usar.
- CXX
- Nombre del compilador de C++ a usar (p. ej. CC).
- CFLAGS
- Indicadores del compilador (p. ej. -g -O2) para compilar código C.
- CXXFLAGS
- Indicadores del compilador (p. ej. -g -O2) para compilar código C++.
- CPPFLAGS
- Rutas de inclusión (p. ej. -I/usr/local) donde buscar archivos de cabecera.
- LDFLAGS
- Rutas de biblioteca (p. ej. -L/usr/local) donde buscar bibliotecas. Los sistemas que admiten la noción de ruta de ejecución de bibliotecas (run-path) pueden requerir un argumento adicional para encontrar bibliotecas compartidas en tiempo de ejecución. Por ejemplo, el enlazador de Solaris requiere un argumento de la forma -R/path. Algunos sistemas Linux funcionarán con -rpath /usr/local/lib, mientras que otros sistemas Linux cuyo gcc no pasa -rpath al enlazador requieren un argumento de la forma -Wl,-rpath,/usr/local/lib.
- LIBS
- Bibliotecas adicionales (p. ej. -l/usr/local/lib) necesarias para enlazar.
Aquí tienes un ejemplo de cómo establecer variables de configure desde la línea de comandos:
configure CC=c99 CFLAGS=-O2 LDFLAGS='-L/usr/local/lib -R/usr/local/lib' LIBS=-lposix
Cualquier variable (p. ej. CPPFLAGS o LDFLAGS) que requiera una ruta de directorio debe especificar una ruta absoluta en lugar de una ruta relativa.
Configure normalmente puede encontrar los archivos de inclusión y biblioteca de X automágicamente, pero si no lo consigue, puedes usar las opciones --x-includes=path y --x-libraries=path para especificar sus ubicaciones.
El script configure proporciona numerosas opciones específicas de ImageMagick. Al deshabilitar una opción, --disable-something equivale a especificar --enable-something=no, y --without-something equivale a --with-something=no. Las opciones de configure son las siguientes (ejecuta configure --help para ver todas las opciones).
Las opciones de ImageMagick representan funcionalidades que se habilitan o deshabilitan, o paquetes que se incluyen en la compilación. Cuando una funcionalidad se habilita (mediante --enable-something), activa código ya presente en ImageMagick. Cuando un paquete se habilita (mediante --with-something), el script configure lo buscará y, si está correctamente instalado y listo para usar (el compilador encuentra las cabeceras y las bibliotecas compiladas), se incluirá en la compilación. El script configure se entrega con todas las funcionalidades deshabilitadas y todos los paquetes habilitados. En general, la única razón para deshabilitar un paquete es que el paquete exista pero no sea adecuado para la compilación (quizá una versión antigua o no compilado con los indicadores de compilación correctos).
Estas son las funcionalidades opcionales que puedes configurar:
--enable-shared
compila las bibliotecas compartidas y el soporte para cargar módulos de codificadores y procesos. Las bibliotecas compartidas son preferibles porque permiten que los programas compartan código común, lo que hace que cada programa sea mucho más pequeño. Además, las bibliotecas compartidas son necesarias para que PerlMagick sea cargado dinámicamente por un PERL instalado (de lo contrario debe instalarse un PERL (PerlMagick) adicional).
ImageMagick compilado con delegados (consulta los COMPLEMENTOS DE MAGICK más abajo) puede plantear desafíos adicionales. Si ImageMagick se compila usando bibliotecas estáticas (lo predeterminado sin --enable-shared), entonces las bibliotecas delegadas pueden compilarse como bibliotecas estáticas o compartidas. Sin embargo, si ImageMagick se compila usando bibliotecas compartidas, entonces todas las bibliotecas delegadas también deben compilarse como bibliotecas compartidas. Las bibliotecas estáticas suelen tener la extensión .a, mientras que las bibliotecas compartidas suelen tener extensiones como .so, .sa o .dll. El código de las bibliotecas compartidas normalmente debe compilarse usando una opción especial del compilador para producir Código Independiente de la Posición (PIC). La única vez que esto no es necesario es si la plataforma compila el código como PIC de forma predeterminada.
Los indicadores de compilación PIC difieren de un proveedor a otro (el de gcc es -fPIC). Sin embargo, debes compilar todo el código fuente de bibliotecas compartidas con el mismo indicador (para gcc usa -fPIC en lugar de -fpic). Mientras que las bibliotecas estáticas se crean normalmente con una herramienta de archivo como ar, las bibliotecas compartidas se compilan usando opciones especiales del enlazador o del compilador (p. ej. -shared para gcc).
Si no se especifica --enable-shared, se compila un nuevo intérprete PERL (PerlMagick) que se enlaza estáticamente con la extensión PerlMagick. Este nuevo intérprete se instala en el mismo directorio que las utilidades de ImageMagick. Si se especifica --enable-shared, la extensión PerlMagick se compila como un objeto cargable dinámicamente que se carga en tu intérprete PERL actual en tiempo de ejecución. El uso de extensiones cargadas dinámicamente es preferible al de extensiones enlazadas estáticamente, así que usa --enable-shared si es posible (ten en cuenta que ¡todas las bibliotecas usadas con ImageMagick deben ser bibliotecas compartidas!).
--disable-static
las bibliotecas de archivo estáticas (con extensión .a) no se compilan. Si estás compilando bibliotecas compartidas, tiene poco valor compilar bibliotecas estáticas. Las razones para compilar bibliotecas estáticas incluyen: 1) pueden ser más fáciles de depurar; 2) los clientes no tienen dependencias externas (es decir, libMagick.so); 3) compilar versiones PIC de las bibliotecas delegadas puede requerir experiencia y esfuerzo adicionales; 4) no puedes compilar bibliotecas compartidas.
--disable-installed
deshabilita la compilación de un ImageMagick instalado (habilitado de forma predeterminada).
De forma predeterminada, la compilación de ImageMagick se configura para instalarse formalmente en un árbol de directorios. Esta es la forma más segura y fiable de instalar ImageMagick. Usa esta opción para configurar ImageMagick de modo que no use rutas codificadas de forma fija y localice los archivos de soporte calculando una ruta de desplazamiento desde el ejecutable (o desde la ubicación especificada por la variable de entorno MAGICK_HOME). La configuración no instalada es ideal para distribuciones binarias que se espera que se extraigan y ejecuten en cualquier ubicación.
--enable-ccmalloc
habilita el soporte de depuración de memoria 'ccmalloc' (deshabilitado de forma predeterminada).
--enable-prof
habilita el soporte de generación de perfiles 'prof' (deshabilitado de forma predeterminada).
--enable-gprof
habilita el soporte de generación de perfiles 'gprof' (deshabilitado de forma predeterminada).
--enable-gcov
habilita el soporte de generación de perfiles 'gcov' (deshabilitado de forma predeterminada).
--disable-openmp
deshabilita OpenMP (habilitado de forma predeterminada).
Ciertos algoritmos de ImageMagick, por ejemplo la convolución, pueden lograr una aceleración significativa con la ayuda de la API OpenMP cuando se ejecutan en procesadores modernos de doble y cuádruple núcleo.
--disable-largefile
deshabilita el soporte para desplazamientos de archivo grandes (de 64 bits).
De forma predeterminada, ImageMagick se compila con soporte para archivos grandes (> 2 GB en una CPU de 32 bits) si el sistema operativo admite archivos grandes. Algunas aplicaciones que usan la biblioteca de ImageMagick también pueden requerir soporte para archivos grandes. Al deshabilitar el soporte para archivos grandes mediante --disable-largefile, las aplicaciones dependientes no requieren opciones de compilación especiales para archivos grandes a fin de usar la biblioteca.
Estos son los paquetes opcionales que puedes configurar:
--with-quantum-depth
número de bits en un cuanto de píxel (predeterminado 16).
Usa esta opción para especificar el número de bits a usar por cuanto de píxel (el tamaño de los componentes de píxel rojo, verde, azul y alfa). Por ejemplo, --with-quantum-depth=8 compila ImageMagick usando cuantos de 8 bits. La mayoría de los adaptadores de pantalla de ordenador usan cuantos de 8 bits. Los argumentos admitidos actualmente son 8, 16 o 32. Recomendamos el valor predeterminado de 16 porque algunos formatos de imagen admiten 16 bits por píxel. No obstante, esta opción es importante para determinar el rendimiento global en tiempo de ejecución de ImageMagick.
El número de bits de un cuanto determina cuántos valores puede contener. Cada nivel de cuanto admite 256 veces más valores que el nivel anterior. La siguiente tabla muestra el rango disponible para diversos tamaños de cuanto.
Quantum Depth Valid Range (Decimal) Valid Range (Hex)
8 0-255 00-FF
16 0-65535 0000-FFFF
32 0-4294967295 00000000-FFFFFFFF
Los cuantos de píxel más grandes pueden hacer que ImageMagick se ejecute más lentamente y requiera más memoria. Por ejemplo, usar cuantos de píxel de dieciséis bits puede hacer que ImageMagick se ejecute entre un 15 % y un 50 % más lento (y consuma el doble de memoria) que cuando se compila para admitir cuantos de píxel de ocho bits.
La cantidad de memoria virtual que consume una imagen puede calcularse mediante la ecuación (5 * Quantum Depth * Rows * Columns) / 8. Esto es una consideración importante cuando los recursos son limitados, sobre todo porque el procesamiento de una imagen puede requerir que varias imágenes estén en memoria al mismo tiempo. La siguiente tabla muestra los valores de consumo de memoria para una imagen de 1024x768:
Quantum Depth Virtual Memory
8 3MB
16 8MB
32 15MB
--enable-hdri
representar con precisión el amplio rango de niveles de intensidad.
--enable-osx-universal-binary
compila un binario universal en OS X.
--without-modules
deshabilita el soporte para módulos cargables dinámicamente.
Los codificadores de imagen y los módulos de proceso se compilan como módulos cargables que se instalan en el directorio [prefix]/lib/ImageMagick-X.X.X/modules-QN (donde 'N' equivale a 8, 16 o 32 según la profundidad de cuanto) en los subdirectorios coders y filters respectivamente. La opción de compilación de módulos solo está disponible junto con --enable-shared. Si no se especifica también --enable-shared, el soporte para compilar módulos queda deshabilitado. Ten en cuenta que si se especifican --enable-shared y --disable-modules, el cargador de módulos está activo (lo que permite extender un ImageMagick instalado simplemente copiando un módulo en su lugar) pero ImageMagick en sí no se compila usando módulos.
--with-cache
establece el umbral de la caché de píxeles (predeterminado a la memoria disponible).
Especifica un umbral de caché de píxeles de imagen distinto con esta opción. Esto establece la cantidad máxima de memoria del montón que ImageMagick puede consumir antes de cambiar al uso de archivos temporales mapeados en memoria para almacenar los datos de píxel en bruto.
--without-threads
deshabilita el soporte de hilos.
De forma predeterminada, la biblioteca de ImageMagick se compila con soporte multihilo. Si esto no es deseable, especifica --without-threads.
--with-frozenpaths
habilita las rutas de delegados congeladas.
Normalmente, los nombres de programas externos se sustituyen en el archivo de configuración delegates.xml sin rutas completas. Especifica esta opción para habilitar el guardado de rutas completas a los programas usando las ubicaciones determinadas por configure. Esto es útil para entornos donde los programas se almacenan bajo múltiples rutas y los usuarios pueden usar configuraciones de PATH diferentes a las de quien compila ImageMagick.
--without-magick-plus-plus
deshabilita la compilación/instalación de Magick++.
Deshabilita la compilación de Magick++, la interfaz de programación de aplicaciones C++ de ImageMagick. Se requiere un compilador de C++ adecuado para compilar Magick++. Especifica la variable de configure CXX para seleccionar el compilador de C++ a usar (predeterminado g++), y CXXFLAGS para seleccionar los indicadores de optimización y depuración deseados del compilador (predeterminado -g -O2). Los compiladores de C++ antiguos normalmente serán rechazados por las pruebas de configure, así que especificar esta opción solo debería ser necesario si Magick++ no se compila.
--without-perl
deshabilita la compilación/instalación de PerlMagick, o
De forma predeterminada, PerlMagick se compila e instala cómodamente como parte del proceso normal configure, make, sudo make install de ImageMagick. Cuando se especifica --without-perl, primero debes instalar ImageMagick, descargar la distribución del código fuente de PerlMagick, compilar y, por último, instalar PerlMagick. Ten en cuenta que PerlMagick se configura incluso si se especifica --without-perl. Si se proporciona el argumento --with-perl=/path/to/perl, se tomará /../path/to/perl como el intérprete PERL a usar. Esto es importante en caso de que el ejecutable perl de tu PATH no sea PERL5, o no sea el PERL que quieres usar.
--with-perl=PERL
usa el binario de Perl especificado para configurar PerlMagick.
--with-perl-options=OPTIONS
opciones a pasar en la línea de comandos al generar el Makefile de PerlMagick a partir de Makefile.PL.
El módulo PerlMagick se instala normalmente usando el PREFIX de instalación del intérprete de Perl, en lugar del de ImageMagick. Si el prefijo de instalación de ImageMagick no es el mismo que el PREFIX de PERL, puede que descubras que el paso sudo make install de PerlMagick intenta instalar en un árbol de directorios sobre el que no tienes permisos de escritura. Esto es habitual cuando PERL se entrega con el sistema operativo o en los servidores web de los proveedores de servicios de Internet (ISP). Si quieres que PerlMagick se instale en otro lugar, proporciona una opción PREFIX al paso de configuración de PERL mediante "--with-perl-options=PREFIX=/some/place". Otras opciones aceptadas por MakeMaker son 'LIB', 'LIBPERL_A', 'LINKTYPE' y 'OPTIMIZE'. Consulta la página de manual ExtUtils::MakeMaker(3) para más información sobre la configuración de extensiones de PERL.
--without-bzlib
deshabilita el soporte de BZLIB.
--without-dps
deshabilita el soporte de Display Postscript.
--with-fpx
habilita el soporte de FlashPIX.
--without-freetype
deshabilita el soporte de TrueType.
--with-gslib
habilita el soporte de la biblioteca Ghostscript.
--without-jbig
deshabilita el soporte de JBIG.
--without-jpeg
deshabilita el soporte de JPEG.
--without-jp2
deshabilita el soporte de JPEG v2.
--without-lcms
deshabilita el soporte de LCMS.
--without-lzma
deshabilita el soporte de LZMA.
--without-png
deshabilita el soporte de PNG.
--without-tiff
deshabilita el soporte de TIFF.
--without-wmf
deshabilita el soporte de WMF.
--with-fontpath
antepone a la ruta de búsqueda de fuentes predeterminada.
--with-gs-font-dir
directorio que contiene las fuentes de Ghostscript.
Especifica el directorio que contiene los archivos de fuentes Type 1 de Ghostscript Postscript (p. ej. n022003l.pfb) para que puedan renderizarse usando la biblioteca FreeType. Si los archivos de fuentes se instalan usando las rutas de instalación predeterminadas de Ghostscript (${prefix}/share/ghostscript/fonts), configure debería descubrirlos automágicamente y no es necesario especificar esta opción. Especifica esta opción si las fuentes de Ghostscript no se localizan automágicamente, o si es necesario anular la ubicación.
--with-windows-font-dir
directorio que contiene las fuentes de MS-Windows.
Especifica el directorio que contiene fuentes compatibles con MS-Windows. Esto no es necesario cuando ImageMagick se ejecuta en MS-Windows.
--without-xml
deshabilita el soporte de XML.
--without-zlib
deshabilita el soporte de ZLIB.
--without-x
no usa el X Window System.
De forma predeterminada, ImageMagick usa las bibliotecas delegadas de X11 si están disponibles. Cuando se especifica --without-x, se deshabilita el uso de X11. Las subórdenes display, animate e import no se incluyen. Las subórdenes restantes tienen una funcionalidad reducida, como la falta de acceso a las fuentes de X11 (considera usar fuentes Postscript o TrueType en su lugar).
--with-share-path=DIR
ruta alternativa al directorio share (predeterminado share/ImageMagick).
--with-libstdc=DIR
usa libstdc++ en DIR (para GNU C++).
Aunque configure está diseñado para facilitar la instalación de ImageMagick, a menudo descubre problemas que de otro modo se encontrarían más adelante al compilar ImageMagick. El script configure prueba las cabeceras y bibliotecas ejecutando el compilador (CC) con los indicadores de compilación especificados (CFLAGS), los indicadores del preprocesador (CPPFLAGS) y los indicadores del enlazador (LDFLAGS). Cualquier error se registra en el archivo config.log. Si configure no consigue descubrir una cabecera o biblioteca, revisa este archivo de registro para determinar por qué; no obstante, ten en cuenta que los errores en config.log son normales porque configure funciona probando algo y viendo si falla. Un error en config.log solo es un problema si la prueba debería haber pasado en tu sistema.
Las causas comunes de los fallos de configure son: 1) una cabecera delegada no está en la ruta de inclusión de cabeceras (opción -I de CPPFLAGS); 2) una biblioteca delegada no está en la ruta de búsqueda/ejecución del enlazador (opción -L/-R de LDFLAGS); 3) a una biblioteca delegada le falta una función (¿versión antigua?); o 4) el entorno de compilación es defectuoso.
Si se han probado todas las acciones correctivas razonables y el problema parece deberse a un fallo en el script configure, envía un informe de error al Foro de soporte de defectos de ImageMagick. Todos los informes de error deben contener el tipo de sistema operativo (según informa uname -a) y el compilador/versión del compilador. Una copia de la salida del script configure y/o la parte relevante del archivo config.log puede ser valiosa para encontrar el problema. Si publicas partes de config.log, envía también un registro de la salida de configure y una descripción de lo que esperabas ver (y por qué) para que el fallo que observas pueda identificarse y resolverse.
ImageMagick ya está configurado y listo para compilar.
Compilación
Una vez configurado ImageMagick, estos objetivos de compilación estándar están disponibles desde los archivos make generados:
- make
- Compila ImageMagick.
- sudo make install
- Instala ImageMagick.
- make check
- Ejecuta las pruebas usando el ImageMagick instalado (primero debe hacerse sudo make install). Ghostscript y Freetype son requisitos previos; de lo contrario, ciertas pruebas unitarias que renderizan texto y los formatos EPS, PS y PDF probablemente fallarán. Estas pruebas unitarias requieren la política de seguridad open para pasar.
- make clean
- Elimina todo lo que make creó en el directorio de compilación.
- make distclean
- elimina todo lo que configure y make crearon en el directorio de compilación. Esto es útil si quieres empezar de cero.
- make uninstall
- Elimina del sistema todos los archivos que están (o estarían) instalados por sudo make install usando la configuración actual. Ten en cuenta que este objetivo es imperfecto para PerlMagick, ya que Perl ya no admite un objetivo de desinstalación.
En la mayoría de los casos simplemente querrás compilar ImageMagick con este comando:
make
Una vez compilado, opcionalmente puedes instalar ImageMagick en tu sistema como se explica más abajo.
Instalación
Ahora que ImageMagick está configurado y compilado, escribe:
make install
para instalarlo.
De forma predeterminada, ImageMagick instala los binarios en /../usr/local/bin, las bibliotecas en /../usr/local/lib, los archivos de cabecera en /../usr/local/include y la documentación en /../usr/local/share. Puedes especificar un prefijo de instalación alternativo distinto de /../usr/local dándole a configure la opción --prefix=PATH. Esto es valioso en caso de que no tengas privilegios para instalar bajo las rutas predeterminadas o si quieres instalar en los directorios del sistema en su lugar.
Para confirmar que la instalación de la distribución de ImageMagick fue correcta, asegúrate de que el directorio de instalación está en tu ruta de búsqueda de ejecutables y escribe:
magick logo: logo.gif
identify logo.gif
El logo de ImageMagick se muestra en tu pantalla X11.
Para verificar la configuración de compilación de ImageMagick, escribe:
magick identify -list configure
Para listar qué formatos de imagen son compatibles, escribe:
magick identify -list format
Para una prueba más completa, puedes ejecutar el conjunto de pruebas de ImageMagick escribiendo:
make check
Ghostscript es un requisito previo; de lo contrario, las pruebas de EPS, PS y PDF fallarán. Ten en cuenta que, debido a las diferencias entre el entorno del desarrollador y el tuyo, es posible que algunas pruebas fallen aunque los resultados sean correctos. Las diferencias entre el entorno del desarrollador y el tuyo pueden incluir el compilador, el tipo de CPU y las versiones de las bibliotecas usadas. Los desarrolladores de ImageMagick usan la versión actual de todas las bibliotecas dependientes.
Instrucciones de compilación específicas de Linux
Descarga ImageMagick.src.rpm desde imagemagick.org o sus réplicas.
Compila ImageMagick con este comando:
rpmbuild --rebuild ImageMagick.src.rpm
Tras la compilación, localiza la carpeta RPMS e instala la distribución RPM binaria de ImageMagick:
rpm -ivh ImageMagick-7.1.2.-?.*.rpm
Instrucciones de compilación específicas de macOS
Realiza estos pasos como administrador o con el comando sudo:
Instala MacPorts. Descarga e instala MacPorts y escribe los siguientes comandos:
sudo port -v install freetype +bytecode
sudo port -v install librsvg
sudo port -v install graphviz +gs +wmf +jbig +jpeg2 +lcms
Esto instala muchas de las bibliotecas delegadas que ImageMagick utilizará, como JPEG y FreeType.
Instala el último Xcode de Apple.
Usa el comando port para instalar cualquier biblioteca delegada que necesites, por ejemplo:
sudo port install jpeg
Ahora vamos a compilar ImageMagick:
Descarga la distribución del código fuente de ImageMagick y verifica la distribución frente a su procedencia.
Descomprime y entra en el directorio de nivel superior de ImageMagick:
tar xvzf ImageMagick-7.1.2-25.tar.gz
cd ImageMagick-7.1.2-25
Configura ImageMagick:
./configure --prefix=/opt --with-quantum-depth=16 \
--disable-dependency-tracking --with-x=yes \
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib/ \
--without-perl"
Compila ImageMagick:
make
Instala ImageMagick:
sudo make install
Para verificar tu instalación, escribe
/opt/local/bin/identify -list font
para listar todas las fuentes que ImageMagick conoce.
Para probar la interfaz gráfica de ImageMagick, en una nueva shell, escribe:
display -display :0
Instrucciones de compilación específicas de MinGW
Aunque puedes descargar e instalar las bibliotecas delegadas tú mismo, muchas ya están disponibles en la distribución GnuWin32. Descarga e instala las bibliotecas delegadas que necesites, como JPEG, PNG, TIFF, etc. Asegúrate de especificar las cabeceras de desarrollo cuando instales un paquete. A continuación, escribe:
tar jxvf ImageMagick-7.1.2-?.tar.bz2
cd ImageMagick-7.1.2-25
export CPPFLAGS="-Ic:/Progra~1/GnuWin32/include"
export LDFLAGS="-Lc:/Progra~1/GnuWin32/lib"
./configure --without-perl
make
sudo make install
Cómo afrontar problemas inesperados
Lo más probable es que la descarga, configuración, compilación e instalación de ImageMagick hayan transcurrido sin fallos, como está previsto; sin embargo, ciertos sistemas y entornos pueden provocar que uno o más pasos fallen. Comentamos algunos de los problemas con los que nos hemos topado y cómo tomar medidas correctivas para asegurarte de tener una versión funcional de ImageMagick.
Problemas de compilación
Si la compilación se queja de dependencias faltantes (p. ej. .deps/source.PLO), añade --disable-dependency-tracking a tu línea de comandos de configure.
Algunos sistemas pueden no conseguir enlazar en tiempo de compilación debido a símbolos no resueltos. Prueba a añadir los LDFLAGS a la línea de comandos de configure:
configure LDFLAGS='-L/usr/local/lib -R/usr/local/lib'
Vinculaciones en tiempo de ejecución del enlazador dinámico
En algunos sistemas, puede que ImageMagick no encuentre su biblioteca compartida, libMagick.so. Prueba a ejecutar ldconfig con la ruta de la biblioteca:
/sbin/ldconfig /usr/local/lib
Los sistemas Solaris y Linux disponen del comando ldd, que es útil para rastrear de qué bibliotecas depende ImageMagick:
ldd `which convert`
Bibliotecas delegadas
En ocasiones puedes recibir estas advertencias:
no decode delegate for this image format
no encode delegate for this image format
Esta excepción indica que una biblioteca delegada externa o sus cabeceras no estaban disponibles cuando se compiló ImageMagick. Para añadir soporte para el formato de imagen, descarga e instala la biblioteca delegada requerida y sus archivos de cabecera y vuelve a configurar, recompilar y reinstalar ImageMagick. Como ejemplo, vamos a añadir soporte para el formato de imagen JPEG. Primero instalamos los RPMS de JPEG:
yum install libjpeg libjpeg-devel
Ahora volvemos a configurar, recompilar y reinstalar ImageMagick. Para verificar que JPEG ya está correctamente soportado dentro de ImageMagick, usa este comando:
magick identify -list format
Deberías ver un modo de rw- asociado a la etiqueta JPEG. Este modo significa que la imagen puede leerse o escribirse y solo puede admitir una imagen por archivo de imagen.
PerlMagick
Si PerlMagick no consigue enlazar con un mensaje similar a libperl.a is not found, vuelve a ejecutar configure con las opciones --enable-shared o --enable-shared --with-modules.