NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO

ImageMagick: Manual en español.

[Un paseo por ImageMagick]


II -Primeras manipulaciones de imágenes




Cambios de formato, dimensiones y peso.


II-1.-El comando [convert]


Podemos considerar al comando [convert] como la herramienta básica de IM. Con el podemos realizar las transformaciones entre los distintos formatos de imágenes, asi como otras interesantes operaciones.

La sintaxis básica del comando responde al modelo general:

convert input [-opciones [argumentos]] output

convert [-opcion [argumentos]] input output

Donde:

Podemos obtener un listado de las opciones de que disponemos para el comando [convert] tecleando:

convert -list




II-2.-Cambiar el formato de imagen.

El cambio de formato de imagen es la operación básica del comando [convert] . La realiza directamente, sin necesidad de opciones.

Asi, para transformar una  imagen JPG denominada input.jpg en una imagen PNG, que denominariamos output.png, compondriamos la siguiente linea de órdenes:

convert input.jpg output.png

Al final de la ejecución del comando tendriamos dos imágenes: la original (input.jpg) y la transformada (output.pgn).

Vamos a ir viendo que el output de cualquier linea de órdenes ( ya sea con el comando [convert] o con otros que se irán viendo a medida que avancemos en este manual) se guardará con el formato que especifiquemos en la extensión de su nombre, con independencia del formato del input.

La linea de órdenes anterior supone que nos hallamos en el directorio en que se encuentra la imagen que deseamos transformar y, salvo que lo indiquemos en la misma linea de órdenes, la imagen transformada se localizará en el mismo directorio de la imagen original.

Observemos la siguiente linea de ordenes:

convert bilbo2.jpg  /home/fotos/ria.tif

Con ella, ejecutada desde el directorio donde se encuentra la imagen bilbo2.jpg,  creamos la imagen ria.tif  y la almacenamos en el directorio  /home/fotos. Como es de suponer, cuando no ejecutamos el comando convert desde el directorio en que se encuentra la imagen que deseemos transformar, deberemos indicar la ruta hacia su directorio en la linea de comandos:

convert /home/lupo/camara/bilbo5.jpg  /home/lupo/fotos/guggen.pdf

En : [ http://www.imagemagick.org/script/formats.php] podemos consultar los distintos formatos de imágen soportados por IM.

Ejecutando la orden: convert -list format ,obtendremos un listado de los formatos soportados por nuestra versión de IM




II-3.-Modificación de las dimensiones de las imágenes: [-resize]

Después del cambio de formato, el cambio del tamaño de las imágenes tal vez sea una de las operaciones mas frecuentes realizadas con IM.

Para redimensionar las imágenes utilizaremos la opción [-resize]

La sintaxis básica para esta opción seria:

convert input -resize argumento output

Los posibles argumentos de la opción [-resize] son:


Mas adelante se explicará la función de cada uno de ellos.

En el caso de querer redimensionar varias imágenes:

convert input1 -resize argumento output1 input2 -resize argumento output2

Tambien podria usarse la sintaxis "simplificada" en el caso de querer redimensionar una sola imagen:

convert  -resize argumento input output

En adelante, cuando los ejemplos se refieran a la transformación de una sola imagen, utilizaremos indistintamente  la sintaxis "básica" o la  "simplificada".

Con [-resize ] podemos cambiar el tamaño de la imagen de distintas maneras, determinadas por la forma que demos al parámetro argumento:



Absoluto: WxH {!} {<} {>} {^}

Especificaremos el número de pixels horizontales (W) y el número de pixels verticales (H) de la imagen final (output), de acuerdo con la siguiente sintaxis:

convert  input -resize WxH output

Por ejemplo, la orden:

convert -resize 600x400 input.jpg output.jpg

nos convierte una imagen , input.jpg  , en otra , output.jpg, de unas dimensiones de 600x400 px

Si solo se especificara uno de las dos dimensiones , W o H, IM estableceria la otra con el fin de mantener las proporciones de la imagen original, así, con la siguiente orden:

convert -resize Wx input output

se redimensionaria al número de pixels especificado en W, y al número de pixels verticales (H) adecuado para mantener la proporción W/H de la imagen original. Si la orden fuera del tipo:

convert -resize xH input output

se redimensionaria al número de pixels especificado en H, y al número de pixels horizontales (W) adecuado para mantener la proporción W/H de la imagen original.

Si acabamos el argumento con el signo de exclamación ! se fuerza a IM a redimensionar la imagen exactamente a las magnitudes fijadas:

convert -resize 600x400! input.jpg output.jpg

Usar el símbolo > para indicar a IM que solo lleve a cabo la redimensión si la magnitud W o H de la imagen original exceden a las fijadas en la orden de redimensión.
Con el símbolo > indicaremos a IM que lleve a cabo la redimensión solo si W y H de la imagen original son menores que las especificadas en la orden de redimensión.

Por ejemplo, si se especifica un tamaño de redimensión de '640x480>' y el tamaño de la imagen es de 125x125, la operación no se efectuará.Sin embargo, si el tamaño de la imagen fuera de 512x512 o de 1024x1024, seria redimensionada hasta 480x480

Cuando se usen los símbolos  !  > o   < , la especificación del tamaño debe entrecomillarse con el fin de evitar interpretaciones no deseadas por parte de la shell.

convert -resize '640x480>' input output

Si se utiliza el símbolo   ^  se indica a IM que las magnitudes establecidas son un límite mínimo.Por ejemplo, con '640x480^' indicamos que la W de la imagen redimensionada no debe ser menor de 640 y que su H no debe ser menor de 480.

Cuando utilicemos la forma "absoluta" de redimensionar imágenes debemos tener el cuenta que los valores W y H deben conservar la proporción con los de la imagen original.......... salvo que deseemos forzar  "efectos especiales :-)


Porcentual: p%

Podemos especificar el nuevo tamaño  como porcentaje (p%) del original:

convert input -resize p%  output

Por ejemplo, con la siguiente orden:

convert  input.jpg -resize 20.5%  output.png

la nueva imagen output.png  tendria un tamaño  igual al  20.5% de la imagen original ( input.jpg)

Con el redimensionamiento porcentual nos aseguramos que se conserva la proporcion W/H en la imagen transformada.


Area máxima: A@

En este caso especificaríamos el  área máxima (A) que deseamos tenga la imagen transformada. El área seria el resultado de multiplicar la anchura por la altura de la imagen. IM realiza la transformación respetando las proporciones entre anchura y altura de la imagen origunal.  La sintaxis de esa transformación es:

convert  input -resize A@ output

Veamos un ejemplo:

convert -resize 1000@ input.tif output.jpg

Si la imagen original (input.tif) tiene un tamaño de 1280x960 px, la imagen transformada (output.jpg) tendria un tamaño de 36x27 px ( area=972px, que no excede al máximo establecido y que mantiene la proporción entre la anchura y la altura, 1280/960 = 1,333; 36/27= 1,333)


Cuando usemos la opción [-resize] precedida de la opción [-filter] ( Véase mas adelante)  la imagen será redimensionada con el filtro especificado.





II-4.-La opción [-scale]

Con la opción [-scale] tenemos otro medio de redimensionar imágenes utilizando un algoritmo más sencillo y rápido que el utilizado por [-resize]

Con [-scale] se ignorará cualquier opción [-filter] que se haya implementado.

La sintaxis de esta opción es:

convert input -scale n% output

convert input -scale W%xH% output

Cuando se utilice con el argumento n%, se escalará la imagen,a lo ancho y a lo alto, al porcentaje es pecificado por n

Cuando se utilice el argumento W%xH% se escalarán la anchura (W) y la altura (H) separadamente, de acuerdo con los porcentajes especificados.

convert input.jpg -scale 25% output.png

Con la anterior línea de órdenes las dimensiones ( horizontales y verticales) del output son el 25% de las del input. ( p.e. un input de 200x200px se redimensionaria en un output de 25x25px)

convert input.jpg -scale 50%x25% output.jpg

Con la anterior línea de órdenes la anchura (W) del output será el 50% de la del input, y la altura (H) el 25% ( p.e. un input de 200x200px se redimensionaria en un output de 100x25px).




II-5.-Modificación de la resolución de las imágenes: [-resample]

Otra via de cambiar el "peso" de una imagen es con la opción [ -resample ]. La particularidad de esta opción es que con ella no se cambian las dimensiones de la imagen, solo su resolución.

La sintaxis de esta opción es:

convert  input -resample RwxRh output

Rw= valor de la resolución horizontal a la que queremos transformar, expresada en dpi.
Rh= valor de la resolución vertical a la que queremos transformar, expresada en dpi.
Cuando Rw=Rh  bastará con especificar un solo valor

Supongamos que disponemos de una imagen, bilbo1.jpg de las siguientes caracteristicas:

dimensión: 340,15 x  238,65 mm
pixels: 3214 x 2255 px
resolución: 240 dpi ( puntos por pulgada) tanto de resolución horizontal como vertical.
"peso" : 1,6 MB

Podemos bajar su resolución a 72 ppi (tando de resolución horizontal como vertical) mediante  la opción [-resample] de la siguiente forma:

convert -resample 72 bilbo1.jpg bilbo1_reducida.jpg

Obtendríamos la imágen bilbo1_reducida.jpg de las siguientes características:

dimensión: 340,08 x 238,83 mm
pixels: 964x677 px
resolución: 72 dpi
"peso": 350,3 Kb

Como vemos, hemos conseguido "adelgazar" la imagen considerablemente sin modificar apenas sus dimensiones.

Esto es aplicable solo a formatos que contengan el dato de la resolución en el mismo archivo de la imagen ( caso de JPG, TIFF y PNG).

Cuando no sea este el caso ( por ejemplo, con el formato PDF o PSD) deberá especificarse su resolución en la linea de órdenes mediante la opción [-density], antes de especificar la resolución a la que desamos transformar la imagen con [-resample].
La sintaxis, en este caso, seria:

convert -density Rw'xRh' input.pdf -resample RwxRh output.png

Rw' y Rh' son las resoluciones horizontal y vertical respectivamente que asignamos a la imagen input.pdf, en dpi. Mas adelante se tratará mas extensamente la opción [-density ]

Debemos tener en cuenta que Photoshop obtiene la información sobre la resolución de un perfil incrustado en el archivo que es de carácter propietario. Si existiera este perfil en la imagen que transformamos, Photoshop continuaria obteniendo los datos de la resolución de su propio perfil, ignorando las modificaciones que hayamos realizado mediante IM




II-6.- "Filtering": [-filter]

Cuando se redimensiona una imagen, cada pixel de la nueva imagen será el promedio de un determinado número de pixels de la imagen original. Es mediante el proceso de "filtering" como se determina el modo en que se  "construye" cada pixel de la nueva imagen y que color tomará.
IM suele aplicar un filtro por defecto, generalmente el Lanczos, con el que se obtienen unos resultados aceptables. Pero nos da la oportunidad  de especificar  el filtro que queramos que se aplique  en la transformación. Los filtros soportados por IM son:

| Point | Box | Triangle | Hermite | Hanning | Hamming | Blackman | Gaussian | Quadratic | Cubic | Catrom | Mitchell | Lanczos | Bessel  |Sinc |

La orden:

convert -list filter

nos mostrará la lista de filtros disponibles en la versión instalada de IM.

En : [ http://www.cit.gu.edu.au/~anthony/graphics/imagick6/resize/#filters ] encontraremos  más información sobre los filtros aplicables.

Para especificar un determinado filtro la linea de comandos tomará la siguiente forma:

convert input.jpg -filter gaussian -resize 40% output.jpg

Puesto que las opciones son evaluadas en el orden en que aparecen en la linea de comandos, cuando usemos la opción [-resize] con la opción [-filter] deberemos asegurarnos de colocar esta última en primer lugar.




II-7.- La opción [ -sample ]

La opción [ -sample ] realiza las mismas funciones que la opción [-resize] pero con la particularidad de que se ignoran los argumentos de  [-filter].
Cuando se quiera modificar el tamaño de una imagen pero no se quiera utilizar ningun filtro o no se quiera que se apliquen los filtros especificados, entonces utilizar [ -sample ]: Con esta opción sencillamente eliminamos columnas y filas de pixels, por lo que su uso en determinadas imáges puede dar lugar a resultados bastante "feos" ......

convert -sample 20% input.jpg output.png




II-8.- Creación de thumbnails :[ -thumbnail ]

La opción [ -thumbnail ] realiza exactamente las mismas funciones que la opción [-resize], pero ignorando los perfiles de imágen almacenados en el archivo de imagen original ( input).

La sintaxis de esta opción seria :

convert input -thumbnail WxH {%}{!}{@}{<}{>}

Puede aplicarse aqui todo lo expuesto en [-resize] :

convert input.jpg -thumbnail 75x100! output.jpg

Aqui se ha utilizado la opción [ -thumbnail ] con el comando [convert], aunque tal vez sea con el comando [mogrify] con el que mas se va a utilizar.




II-9.- Nueva imagen a partir de una sección del input: [-crop]

IM nos permite generar una imagen (output) a partir de una determinada sección de la imagen original ( input).


Para ello necesitaremos varios datos:

Anchura (W) y Altura (H) ,en pixels de la sección a "recortar".
Distancia (x) , en pixels, del ángulo superior-izquierdo del sector a recortar al borde  izquierdo  de  la imagen original.
Distancia (y) , en pixels, del ángulo superior-izquierdo del  sector a recortar  al borde superior de la imagen  original.

La linea de órdenes para esta opción se ajustaria a uno de estos dos modelos:

convert -crop W{%} input output

convert -crop WxH {+-}x{+-}y {%} {!} input outpu

La nueva imagen, output, se corresponderá con la sección especificada en la original (input).
Si las referencias de la sección fueran con respecto al borde inferior-derecho, deberian cambiarse los signos (+) por signos (-)

convert -crop WxH-x-y input output

La orden :

convert -crop 600x400+60+90 input.jpg output.png

nos generaria una nuena imagen ( output.png) cuyo contenido seria una sección de la imagen input.jpg de 600x400 px cuyo borde superior-izquierdo  estaria a  una distancia de 40px del borde izquierdo y a 90px del borde superior de la imagen input.jpg.



En el siguiente ejemplo generamos la imagen barca.png a partir de una sección de la imagen bilbo4.png:

convert -crop 160x130+30+30 bilbo4.png barca.png


bilbo4.png

barca.png

Si se omiten las dimensiones x e y, se generan toda una serie de "baldosas" de las dimensiones especificadas en la orden,y que en su conjunto, comprenden la totalidad de la imagen inicial.
Puede ser interesante ver como actua esta opción con lineas de órdenes del tipo:

convert -crop 25% input output

convert -crop WxH input output




II-10.- Recortar filas y columnas:[-chop]

A diferencia de la opción [-crop], , la opción [ -chop ] se utiliza para eliminar filas y columnas de una imagen.

El output será la imagen original, sin las filas y columnas eliminadas.

La sintaxis de la linea de órdenes para esta opción seria la siguiente:

convert -chop WxH{+-}x{+-}y {%} input output

En este caso, con los dos primeros números ( W  y H ) indicamos el tamaño de la porción de imagen a eliminar:



convert -chop 200x300+100+250 input.jpg output.jpg

Con la anterior orden eliminaríamos una columna de 200px de anchura  y una fila de 300px de grosor, cuyos bordes superiores izquierdos estuvieran a 100px del borde izquierdo  y a 250px del borde superior de la imagen original.

Mediante las siguientes figuras vamos a intentar ilustrar mejor el funcionamiento de la opción [-chop]:

Partimos de la imagen original fig1.png,cuyos elementos tienen las dimensiones que se muestran en la figura fig0.png

Con la orden:

convert -chop 40x33+0+0 fig1.png fig2.png

obtenemos la imagen fig2.png, en la que hemos eliminado la columna azul izquierda y la fila azul superior.

De igual forma podriamos obtener la imágen fig3.png , a partir de la imagen original fig1.png:

convert -chop 0x50+40+125 fig0.png fig3.png

En esta última operación debe notarse de que al eliminar solo una fila, la roja central, el valor de W es cero.


fig0

fig1

fig2

fig3

Cuando se utiliza la opción sin especificar los valores de x e y, se elimina una porción del borde superior (fila) y otra del izquierdo (columna) del grosor especificado.


convert -chop 25% bcnt.jpg chop.jpg



bcnt.jpg (300x225px)

chop.jpg (225x169px)



II-11.- Eliminar márgenes: La opción [-trim]

Con la opción [-trim] eliminamos cualquier pixel de los márgenes de una imagen que sean del mismo color que los de sus esquinas.

convert -trim input output

Veamos un ejemplo de la acción de la opción [-trim] sobre la imagen maremagnum.png,
que tiene un borde negro de 5 px.

comvert -trim maremagnum.png maremagnum.tif


maremagnum.png

maremagnum.tif

En ocasiones podrá observarse que no se ha eliminado la totalidad del borde. Ello es debido a pequeñas variaciones en el color del borde. Para solucionar este problema debemos "ajustar" más la definición del color que deseamos eliminar. Para ello utilizaremos la opción [-fuzz], que se descibe en esta misma sección.

convert -trim -fuzz 20% maremagnum.png maremagnum.gif


II-12.- "Afeitando" los bordes:[-shave]

Con esta opción eliminamos de los bordes de la imagen la cantidad de pixels especificados en la linea de comandos.

La sintaxis para esta opción puede tomar dos formas:

convert -shave %p input output

convert -shave WxH input output

%p: Elimina dos filas (superior e inferior) de un grosor cada una de ellas igual al p% de altura de la imagen y dos columnas (izquierda y derecha) de un grosor, cada una, igual al p% de la anchura de la imagen.

W=cantidad de pixels a eliminar de los bordes horizontales.
H= cantidad de pixels a eliminar de los bordes verticales.

Veamos un ejemplo:

convert -shave 40x60 input.jpg output.jpg

Con la anterior orden eliminariamos 40px de los bordes superior e inferior y 60px de los bordes derecho e izquierdo de la imagen input.jpg


convert -shave 25% bcnt.jpg shave.jpg


bcnt.jpg (300x225px)

shave.jpg (150x113px)
En este caso hemos eliminado dos filas y dos columnas, cada una de ellas de un grosor, en pixels, igual al 25% de la altura y de la anchura de la imagen.



II-13.- Añadir bloques de pixels a una imagen: [-splice]

La sintaxis de esta opción es:

-splice WxH+x+y

Con esta opción podemos "unir", "incorporar", "añadir" ....bloques de pixels a la imagen , como filas y/o columnas, de acuerdo con la geometria especificada en el argumento y del color especificado en la opción [-background] que preceda a la opción [-splice].

Veamos el significado de cada uno de los términos del argumento:

  • W: Anchura de la columna a añadir ( en pixels)
  •   
  • H: Grosor de la fila a añadir ( en pixels)
  •   
  • +x:Distancia (en pixels) del límite izquierdo de la columna al borde izquierdo de la imagen.
  •   
  • +y:Distancia ( en pixels) del límite superior de la fila al borde superior de la imagen.

Debe observarse que las filas y/o columnas SE AÑADEN a la imagen, por lo que los pixels de aquellas no reemplazarán a los de la imagen: se originará un desplazamiento de porciones de imagen hacia arriba/abajo e izquierda/derecha de las columnas o filas añadidas.

Partiendo de la imagen barca.png, veamos el comportamiento de esta opción:

convert barca.png -background red -splice WxH+x+y output




II-14.- Transformaciones en "masa" : El comando [mogrify]

Con el comando [convert], las modificaciones en una imagen, input, se "transformaban" en otra imagen, output, respetando la integridad de la primera.

Esta ventaja, la de conservar intacto el original, nos limita a la hora de realizar transformaciones "en masa" , ya que con el comando [convert], para cada input debemos especificar un determinado output.
Por ejemplo, con [convert] no seria posible transformar un directorio entero de imagenes en thumbnails. No  seria válida una orden  como la siguiente:

convert -thumbnails 15% *.jpg

Con el comando [mogrify] si podemos realizar operaciones en masa con casi todas las opciones disponibles para el comando [convert] pero con una advertencia:

NO SE GENERAN NUEVOS ARCHIVOS, SE SOBREESCRIBEN LOS ARCHIVOS SOBRE LOS QUE SE ACTUA.

Por ello, es mas que aconsejable que se utilice [mogrify] siempre con copias de los archivos originales.

Asi, la orden:

mogrify -thumbnails 15% *jpg

convierte todas las imágenes JPG del directorio en thumbnails, sobreescribiendolas.

Ademas de la utilidad de [mogrify] para la realización de operaciones en masa sobre directorios, utilizaremos este comando siempre que deseemos que la modificación que realicemos sobreescriba el archivo original.




II-15.- La opción [-format] con [mogrify]

Una excepción a la sobreescritura que conlleva [mogrify] es cuando se utiliza para el cambio de formato de imagen y  con la opción [ -format ]

La orden:

mogrify -format png  -thumbnail 10% *jpg

generaria  thumbnails  de cada uno de los archivos JPG del directorio, dejando intacto  los originales.

mogrify -format tif *jpg
mogrify -format png -resize 20 *tif

Las dos anteriores órdenes realizarian la transformacion  en masa respetando  la integridad de los  archivos originales, ya que la transformación  va asociada a un cambio de formato , especificado con la opción [-format ], que implica la generación de nuevos archivos (outputs) al comportar un cambio en la extensión de los mismos.

Más adelante, cuando se describa el comando [identify], se verá otro uso de la opción [-format]




II-16.- ¿Donde guardar los outputs?: [-path]

Mediante esta opción determinamos el directorio en el que guardar las imágenes.

-path ruta

Esta opción es util cuando se desee guardar el output en un directorio distinto del que estemos operando.

Mediante esta opción podemos salvar uno de los escollos que nos pueda suponer la utilización del comando [mogrify] : La sobreescritura de las imágenes. Dirigiendo el output a un directorio distindo del que estamos operando, el input no será sobreescrito.

mogrify -path /home/user/thumb -thumbnail 100x100 *.jpg

Con la anterior orden, los thumbnais generados se guardarán en el directorio /home/user/thumb ; permaneciendo inalteradas la imágenes *.jpg de las que se han originado.




II-17.- Limitar la acción de determinadas opciones a una región de la imagen: [-region]

Mediante esta opción podemos definir una determinada área, o región, de la imagen a la que limitar la acción de determinadas opciones que, de otra forma, actuarian sobre la totalidad de la imagen.

Su utilidad real se verá más adelante, actuando conjuntamente con otras opciones que producen transformaciones en la imagen, pero dado su caracter "general" este puede ser un buén momento para introducirla.

La sintaxis básica de esta opción es:

-region WxH±x±y

Para el significado del argumento WxH±x±y, véase la opción [-crop]

Como se ha comentado anteriormente, la opción [-region] se utiliza para limitar el alcance de la acción de otras opciones. La sintaxis de una linea de órdenes en la que intervenga [-region] como limitadora de la opción [-OPCION] seria:

convert input -region WxH±x±y -OPCION {argumentos} output

Aprovechamos la ocasión para comentar que cuando en una linea de órdenes se definen más de dos opciones, puede ser mas conveniente la sintaxis anterior, en la que el input se define al principio, que aquella en la que input y output se definen al final de la línea de órdenes.La razón se explicó en : [Sintaxis de la linea de comandos].

Por ejemplo, con la siguiente linea de órdenes limitariamos la accion de la opción [-swirl] al área de la imagen definida por [-region]:

convert input -region 120x70+20+0 swirl 180 output

La forma de operar de esta opción es, básicamente, extrayendo el área de la imagen input delimitada por los argumentos de [-region] y aplicar, sobre esta imagen "extraida" las operaciones de las opciones que se hayan asociado con [-region] para, finalmente, volverla a adjuntar a la imagen original.

En el apartado [Limitar las distorsiones a determinadas regiones de la imagen] podemos ver unos cuantos ejemplos de la forma de actuar de la opción [-region].

La opción [-region] puede asociarse a culquier operación que realicemos sobre una imagen, aunque , como puede intuirse, su utilidad real variará mucho dependiendo del tipo de operación que deseemos realizar.

Para acabar, debemos comentar que a una opción [-region] se le pueden asociar varios opciones, con lo que limitariamos todas sus acciones a la región definida:

convert input.png -region 40x40+5+5 -mattecolor -background blue -rotate 30 output.png

Con la anterior orden limitariamos los efectos de las opciones [-mattecolor], [-background] y [-rotate], al área 40x40+5+5 de la imagen input.png.




II-18.-Extraer un área de la imagen: [-extract]

Esta opción extrae una determinada área de la imagen sobre la que se aplicarán las modificaciones implementadas.

-extract WxH±x±y

Para los significados de WxH±x±y, ver [-crop].

Debe hacerse notar la diferencia entre esta opción y la opción [-region]:

Con [-extract] se extrae el área determinada, se aplican sobre ella las acciones configuradas y se salva dicha área extraida y modificada como un output.

Con [-region] las acciones se aplican a la región especificada de la imagen input y se genera un output que contiene todas las regiones del input, tanto las modificadas como las no modificadas.


Vamos a ver, partiendo de la imagen llac.jpg, como actua [-extract], comparándola con la opción [-region]:

convert -region 115x150+75+50 bordercolor '#ff0000' border 1 paint 4 llac.jpg region-paint.png

convert -extract 115x150+75+50 bordercolor '#ff0000' border 1 paint 4 llac.jpg region-paint.png


llac.jpg

region-paint.png

extract.png



II-19.- Compresión de archivos: [-compress]

Con el comando [convert], al realizar un cambio de formato de imagen podemos realizar también un cambio en la compresión de la misma.
Existe un modo de especificar el tipo de compresión deseada a la hora de llevar a cabo la transformación de una imagen. Es con la opción  [ -compress ].

convert -compress argumento  input output

El argumento de la opción [-compress] es el tipo de compresión que deseamos aplicar.

Por ejemplo, con la orden:

convert -compress zip input.jpg output.tif

generamos una imagen TIFF comprimida en zip a partir de la imagen JPG.

Los posibles tipos de compresión utilizables por IM son:

| None |Bzip | Fax (CCITT Group 3 fax compression) | Group4 (CCITT Group 4 fax compression)| JPEG | JPEG2000 | Lossless (lossless JPEG) | LZW | RLE |  Zip  |

En: [ http://www.imagemagick.org/script/formats.php ]pueden consultarse los formatos soportados por IM y que pueden utilizar la opción [-compress]

Mediante la ejecución de la siguiente línea de órdenes obtendremos un listado de los distintos formatos de compresión soportados por nuestra versión de IM:

convert -list compress


Compresión GZIP directa.

Un caso especial en la compresión de imágenes es el de compresión GZIP directa: añadiendo al final del nombre del output la extensión .gz, obtendremos el archivo comprimido en GZIP.

convert input.png -resize 200x150 output.png.gz




II-20.- Calidad de la imagen en JPGE/MIFF/PNG: [-quality]

Mediante esta opción especificamos los niveles de compresión de los formatos JPG/MIFF/PNG

La sintaxis para esta opción es:

convert -quality a% input output

en donde el argumento a% representa el nivel de compresión deseado.

convert -quality 10% input.jpg output.jpg

En los formatos JPEG y MPEG los niveles van de 0 (mínima calidad de imagen y máximo nivel de compresión) a 100 (máxima calidad de imagen y mínimo nivel de compresión).

En los formatos PNG y MNG, el valor establece el nivel de compresión zlib (calidad / 10) y el tipo de filtro (calidad % 10). Los niveles de compresión van desde 0 ( rápida) hasta 100 (buena calidad pero compresión mas lenta).




II-21.- Creación de imágenes interlazadas: [-interlace]

Las imágenes interlazadas son aquellas que se van mostrando progresivamente a medida que se van descargando. Para crearlas utilizaremos  la opción [ -interlace ], con los argumentos:



Cada uno de estos argumentos nos generará un modo de "aparición" de la imagen creada: por lineas [line] o por planos [plane]
La sintaxis para esta opción seria:

convert -interlace argumento input output

Por ejemplo:

convert -interlace  line input.jpg output.jpg
convert -interlace plane input.jpg output.jpg

Mediante la opción [-list] con el argumento interlace obtendremos también un listado de los argumentos de la opción [-interlace] disponibles en nuestra versión de IM:

convert -list interlace


II-22.- Ajuste directo del tamaño final de una imagen: [-extent]

Con esta opción ajustamos el tamaño final de una imagen. Su sintaxis es:

convert input -extent WxH output

Los dos elementos del argumento, W y H se refieren al tamaño , en pixels, del ancho y alto, respectivamente, de la imagen final (output).

Si el tamaño final especificado es mayor que el del input se añadirán los pixels necesarios al margen derecho y/o al margen inferior.

Si el tamaño final especificado fuera menor, se recortaria la imagen en el margen derecho y/o inferior hasta ajustarla al tamaño especificado.

En todo caso el área superior izquierda de la imagen permanece inalterada.


Partiendo de la imagen grn.jpg de 100x72 pixels, veamos el comportamiento de esta opción para distintos valores de WxH

convert grun.jpg -background yellow -extent WxH output.png

Se ha utilizado la opción [-background], con el fin de resaltar ( en amarillo) el espacio añadido.


grun.jpg

W=150
H=100

W=150
H=72

W=100
H=100

W=75
H=50



II-23.- Seguimento del proceso de transformación: [-monitor]

La sintaxis de esta opción es:

Mediante esta opción podemos seguir, en la cónsola, el proceso de transformación de una imagen.

convert imput -monitor -opcion output

Veamos lo que apareceria en la cónsola durante un proceso de transformación con la opción [-monitor]:

Macintosh-2:asd53$ convert llac.jpg -monitor -monochrome -bordercolor '#ff0000' -border 2 llac-m.png
RGB transform image: 100%
RGB transform image: 100%
Classify image colors: 100%
Reduce image colors: 100%
Dither image colors: 100%
Add frame to image: 100%



II-24.- La opción [-fuzz]

La opción [-fuzz] hace que los colores que se encuentren en el rango de la distancia establecida como argumento se consideren iguales a efectos de tratamiento por otras opciones.

La sintaxis de esta opción es:

-fuzz distancia {%}

El argumento de esta opción, distancia, puede expresarse en unidades absolutas de intensidad o como un porcentaje de la máxima intensidad posible ( 255, 65536 o 4294967295); en este último caso el argumento tomaria la forma n%.

Dicho de otra forma, dado un color, otro color será tratado como el primero si la diferencia entre ambos colores es menor que el factor especificado ( de forma absoluta o en porcentaje). Así, un factor '200' representa una distancia de 200 unidades en la profundidad de color; un factor 20% representa una diferencia del 20% en la profundidad de color.

Veamos el funcionamiento de esta opción através de unos ejemplos.


Partiremos de un gradiente de color azul: gradientBlue.png


gradientBlue.png

convert gradientBlue.png -fuzz n% -fill '#ff0000' -opaque '#0000ff' output.png

Con la anterior orden sustituiremos el color especificado en la opción [-opaque](azul), por el color especificado en la opción [-fill], (rojo). Veamos el resultado para varios valores de [-fuzz]:


Como podemos observar, a mayor porcentaje, más tonos de azul son tratados como el especificado en la opción [-opaque] y, por tanto, sustituibles por el color especificado en la opción [-fill], (rojo).






[ 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