NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO

ImageMagick: Manual en español.

[Un paseo por ImageMagick]


XIII- Formatos Especiales. (Específicos de ImageMagick.)







XIII-1.- Introducción


ImageMagick es capaz de manejar un gran número de formatos de imagen. También puede utilizar generadores de imáges; entre estos se encuentran algunos formatos de imagen específicos de IM.

Esta sección está dedicada a estos formatos de imagen específicos de IM. Son los siguientes:






XIII-2.- [miff:]

Es el formato propio ("interno") de IM. Sólo los comados de IM pueden leer dicho formato.

La secuencia completa de imágenes y todos los atributos asociados a ellas se guardan en este formato.

El propósito de este formato es el de actuar como un formato intermedio en los scripts de procesamiento de imágenes.

No profundizaremos en las características de este formato, ya que para ello deberíamos rebasar los límites impuestos en este Manual.





XIII-3.- [info:]

Este formato especial nos mostrará la misma información que se obtiene ejecutando el comando [identify]. Con el podemos visionar en pantalla o guardar en un archivo la información referente a una imagen que se encuentre en la memoria.

Como ocurre con [identify], también con [info:] pueden utilizarse las opciones [-verbose] y [-format], que permiten obtener información específica.

Las posibles sintaxis para este operador serian del tipo:

convert input info:

convert input -verbose info:

convert input -format "%m:%f %wx%h" info:

Tal como se han escrito las anteriores órdenes, la información generada de visionaria en el monitor.

Si deseáramos guardar la información en un archivo, bastaria con especificar el nombre del archivo despues de los dos puntos del operador:

convert input -verbose info:archivo.txt

Con la anterior orden la información se guardaria en el archivo archivo.txt.

Veamos algunos ejemplos:

$ convert rose.png info:
rose.png PNG 70x46 70x46+0+0 DirectClass 8-bit 

$ convert rose.png -verbose info:
Image: rose.png
  Format: PNG (Portable Network Graphics)
  Class: DirectClass
  Geometry: 70x46+0+0
  Type: TrueColor
  Endianess: Undefined
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
 ................
..................
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Signature: 5a5f94a626ee1945ab1d4d2a621aeec4982cccb94e4d68afe4c784abece91b3e
  Tainted: False
  Version: ImageMagick 6.3.7 08/21/08 Q16 http://www.imagemagick.org

$ convert rose.png -format "%m : %f  %wx%h pixels" info:
PNG : rose.png  70x46 pixels

Un aspecto interesante de [info:] es que, incorporado en una línea de órdenes, además de obtener el output correspondiente puede obtenerse información extra del mismo. Ello es posible mediante la utilización de la opción [-write], que nos posibilitará salvar esta información en una imagen o visionarla en el monitor.

convert rose.png -paint 3 -verbose -write info:archivo.txt rose_paint.png

Con la anterior orden guardaríamos a información de la imagen generada tras aplicar la opción [-paint], en el archivo de texto arch.txt

Observemos ahora la siguiente línea de órdenes:

convert rose.png -write info:arch_0.txt -paint 3 -write info:arch_1.txt -resize 75% -write info:arch_2.txt output.png

Obtendríamos tres archivos de texto con las siguientes inforaciones:


El conjunto -write info: es equilavente a la opción [-identify] ( NO CONFUNDIR CON EL COMANDO [identify])





XIII-4.- Crear espacios vacios: [null:]

Al hablar de [VI.- Imágenes Compuestas] ya pudimos ver el comportamiento de este operador.

Cuando [null:] se utiliza como output actua no salvando la imagen resultante.

Utilizado como input, generará una imagen de un solo pixel transparente, en una secuencia de imágenes. Ya pudimos ver su utilidad como medio de generar espacios vacios en una secuencia de imágenes. ([VI.- Imágenes Compuestas])





XIII-5.- Listado de los pixels: [txt:]

Este operador es, básicamente, un archivo de texto ASCII en el cual se lista cada uno de los pixels (uno por línea) de la imagen que se encuentre en memoria.

convert input txt:

Nos mostrará en pantalla la información.

convert input txt:arch.txt

Guardará la información en el archivo arch.txt.

Como hicimos con [info:], podemos combinarlo con la opción [-write] cuando deseemos informaciónde cada una de las imágenes intermedias que se generen en una línea de órdenes:

convert rose.png -write txt:arch_0.txt -paint 3 -write txt:arch_1.txt -resize 75% -write txt:arch_2.txt output.png





XIII-6.- Histograma de la imagen: [histogram:]

Este formato especial en realidad es un archivo [miff:], que contiene una detallada descripción de todos los colores componentes de una imagen.

convert input histogram:archivo.txt

Con la anterior orden obtendremos un archivo de texto conteniendo la información del archivo. La información obtenida seria semejante a la que obtendríamos con [txt:]

El comentario en texto del histograma puede "extraerse" y visualizarse mediante un operador [info:], formateado de la siguiente manera:

convert input -format '%c' histogram:info:-

La información obtenida mediante esta línea de órdenes es semejante a la obtenida con la anterior, con la particularidad de que aquí se ha sustituido la localización XY por un contaje del número de pixels.

Con la anterior orden la información se mostrará en la terminal. En caso de querer guardarla en un archivo de texto deberíamos sustituir la orden de mostrar en terminal (-) por el nombre del archivo en el que deseamos salvarla..

La utilidad mas interesante de este formato es su visualización de la información en una imagen. De hecho, [histogram:] genera una imagen miff: si ejecutamos la orden convert input histogram: nos aparecerán en pantalla toda una serie de caracteres "raros" :-) ya que miff es un formato solo legible por IM. Si se desea convertir dicha imagen en otra de un formato que podamos visualizar, bastará con especificar el nombre del archivo con la extensión del formato deseado.

convert input histogram:archivo.{png, gif, jpg....}

Obtendremos una imagen de 256x200 pixels. En el eje X estarán los valores de los colores ( 0-255) y en el eje Y el contaje de pixels. El histograma de cada canal se visualiza en su correspondiente color ( cada color tendrá su propio histograma).


convert rose.png histogram:histo.png


También es posible obtener una imagen del histograma para cada uno de los canales. Para ello utilizaremos el histograma generado en la anterior ejemplo (histo.png) y la aplicaremos la opción [-separate]

El resultado serán tres imágenes, en blanco y negro, numeradas, cuyo nombre responde al modelo nombre-número.extension : La imagen nº 0 se corresponderá al histograma del canal R (Rojo), la nº 1 al canal G (Verde) y la nº 2 al canal B (Azul)


convert histo.png -separate canal-%d.png


Si estuviéramos mas interesados en el control del brillo que en el de los colores, deberemos convertir el input a escala de grises antes de generar el histograma:

convert rose.png -colorspace gray \
histogram:histo_brillo.png





XIII-7.- Magick Program (memory) Register: [mpr:]

Guardará la imagen en la memoria en lugar de hacerlo en el disco.

mpr:etiqueta

El argumento etiqueta puede ser cualquier palabra o cadena ( recordemos: las cadenas, entre comillas ), que identificará el archivo en la memoria.Una vez guardada una imagen en memoria, con una etiqueta, puede ser leida tantas veces como se quiera.

Como la imagen se ha guardado en memoria, cualquier operación que se realice con ella deberá hacerse con la opción [-write]


Veamos el funcionamiento de [mpr:]:

convert rose.png -write mpr:flor mpr:flor mpr:flor +append mpr_append.png

Con el primer operador [mpr:] hemos asignado a etiqueta flor al archivo rose.png y se ha guardado en memoria.

Tras la opción [-write], se invoca tres veces el archivo y sobre estos tres archivos se aplica la opción [+append].

Antes de la incorporación de la opción [-clone], el operador [mpr:] constituya la única via de duplicar imágenes "en-memoria", sin tener que recurrir a imágenes intermedias salvadas en el disco.

Una de las mayores ventajas del operador [mpr:] es que nos permite realizar ajustes y operaciones que actuarán solo sobre el input generado por el operador. Veamos un ejemplo:

convert rose.png -implode 2 -write mpr:flor +delete -size 200x200 tile:mpr:flor mpr_multi

Con esta orden hemos aplicado la opción [-implode] al input (rose.png). Seguidamente hemos salvado este input modificado con la etiqueta flor y hemos eliminado la última imagen de la secuencia (el input) mediante la opción [+delete]. Hemos creado un lienzo con la opción [-size] y hemos utilizado la imagen modificada salvada el memoria (flor) como motivo del mosaico generado por el operador [tile:].

Debe hacerse notar que [mpr:] salva la secuencia completa de imágenes generada, no solo una imagen.De ahí la necesidad de utilizar la opción [+delete] para eliminar la última imagen de la secuencia salvada, cuando no nos interese utilizarla porteriormente.

El operador [mpr:] puede utilizarse también para guardar en memoria los outputs de alguno de los formatos especiales tratador en esta sección. Así, son posibles combinaciones como histogram:mpr:histo : la salida de [histogram:] se guardaria en memoria con la etiqueta histo

convert rose.png -write histogram:mpr:histo +delete mpr:histo -separate mpr_histo.png





XIII-8.- Magick Persistent (disk) Cache: [mpc:]

Este es un formato especial pensado para el manejo de grandes imágenes. salva las imáges en disco como dos archivos binarios: uno con la extensión .mpc que maneja los datos de la imagen y otro con la extensión .cache, que maneja el cache de pixels de la imagen. En definitiva, [mpc:] salva dos imágenes en disco.

convert imagen.tif imagen.mpc

La anterior orden nos salvará dos imágenes en disco: Una imagen pequeña, imagen.mpc, y una imagen mucho mayor, imagen.cache, solo usable en máquinas con el mismo hardward y versión de sistema operativo con el que fué creda.

Aqui dejamos la explicación de este operador, ya que adentrarnos en la exposición de su utilización rebasaria los límites de este manual.





XIII-9.- El formato especial de salida [x:]

En [VIII-. Capturas de pantalla] pudimos ver ya este operador en acción.

Este es un formato especial de presentación: nos muestra a imagen del output directamente en pantalla en lugar de salvarla en un archivo. Es un método útil para realizar controles rápidos e inmediatos del resultado de una determinada línea de órdenes.

debe tenerse presente que no se lleva muy bién con las semitransparencias: los pixels semitransparentes erán mostrados como opacos.

Su utilidad se manifiesta con los comandos [display] ( no tratado en este manual) y [compare], así como en las [Capturas de pantalla].





[ Indice ] [ Inicio Sección] [ Sección Anterior ] [ Sección Siguiente ]

Licencia: "ImageMagick: Manual en español". By Antoni Serra Devecchi is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.

NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO