NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO

ImageMagick: Manual en español.

[Un paseo por ImageMagick]


V.- Elementos Decorativos y Texto en Imágenes.





Las siguientes opciones que van a tratarse tienen como principal acción la de añadir elementos decorativos y de texto a los outputs: Marcos, bordes, etiquetas, títulos etc..

Aunque se expliquen en el contexto del comando [montage], pueden aplicarse con otros comandos, como [convert] o [mogrify] y junto con otras opciones, ya que su finalidad, como se ha dicho, es la de "decorar" los outputs que se generen en una linea de órdenes.





Incorporar elementos decorativos a las imágenes.





V-1.-Enmarcando imágenes: [-frame]

Con la opción [-frame] podremos añadir marcos biselados a las imágenes. La sintaxis básica de esta opción es:

-frame W

-frame WxH{±}x{±}y

Donde:


W     Grosor de los marcos superior e inferior.Cuando se especifica como único argumento ( sin H) se tomará su valor como el grosor del marco alrededor de toda la imagen
H     Grosor de los marcos laterales
±x     Grosor del bisel externo
±y     Grosor del bisel interno

Esta opción se utiliza principalmente con los comandos [convert] y [montage]. Debemos tener en cuenta que cuando se utiliza esta opción con el comando [montage], los valores de los biseles externos e internos se darán por defecto, por lo que no necesitan especificarse.

Veamos unos ejemplos, con el comando [convert] y con el comando [montage]


Partiendo de la imagen frame.jpg,veamos como actua esta opción:


frame.jpg

convert -frame 10x15 frame.jpg frame0.png

No se han especificado biseles.


frame0.png

convert -frame 10x15+5+5 frame.jpg frame1.png

Se han especificado los biseles interno y externo, asignándoles un grosor de 5 px a cada uno.


frame1.png

montage 0[0-2]png -tile x1 -frame 5 \
-geometry '40x40+2+2>' mon_frame_0.png

Al utilizarse esta opción con el comando [montage], los biseles se dan por defecto, por lo que no es preciso especificarlos.


mon_frame0.png

Tenemos la posibilidad de especificar el color del marco. Se hará con la opción [-mattecolor].





V-2.-Color de los marcos: [-mattecolor]

Con esta opción podemos asignar un determinado color a los marcos que se creen con [-frame]

-mattecolor color

El color se definirá según uno de los siguientes formatos:

La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color


convert -frame 10x15+5+5 \
-mattecolor "#0000ff" frame.jpg frame1_blue.png


frame1_blue.png

montage 0[0-2].png -tile x1 -frame 5 \
-mattecolor "#00ff00" \
-geometry '40x40+2+2>' mon_frame_color.png


mon_frame_color.png




V-3.-Colocando bordes: [-border]

Con esta opción colocamos bordes alrededor de las imágenes. Como varias de las opciones anteriormente descritas, tampoco es exclusica del comando [montage].Cuando se utilice con este comando, el borde se colocará arrededor de cada una de las imágenes que componen el mosaico.

convert -border W input output
convert -border WxH input output

Mediante W y H se establecen los grosores de los bordes verticales y horizontales, respectivamente. Cuando solo se especifica un valor este se aplicará a todos los bordes.





V-4.-Dando color a los bordes: [-bordercolor]

Con esta opción establecemos el color de los bordes que se crean.

Cuando se utiliza con el comando [montage] lo que hace esta opción es llenar del color establecido el espacio de la ventana no ocupado por la imagen.

convert -bordercolor color -border wxH input output

El color se definirá según uno de los siguientes formatos:

La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color

Es conveniente que la opción [-bordercolor] preceda la opción [-border] ya que esta, en ausencia de una definición de color, crea un borde del color por defecto ( normalmente, gris-claro) que, posteriormente, [-bordercolor] no podrá cambiar.


Veamos unos ejemplos de las opciones [-border] y [-bordercolor]:


convert -bordercolor '#ff0000' -border 5 00.png b00.png


b00.png

convert -bordercolor Yellow -border 10x5 00.png c00.png


c00.png

Veamos ahora estas dos opciones con el comando [montage]

montage 0[0-2].png -bordercolor '#000000' -border 5\
-tile x1 -geometry 40x40+2+2 mborder.png

Se ha creado un borde de 5px alrededor de cada imagen.
Los espacios libres se ha llenado con el color establecido con [-bordercolor].


mborder.png
Veamos ahora las diferencias entre marcos (color verde) y bordes (color rojo)

convert -frame 5x5 -mattecolor '#00ff00' \
-border 5 -bordercolor '#ff0000' 00.png fb00.png


fb00.png

montage 0[0-2].png -frame 5x5 -mattecolor '#00ff00'\
-bordercolor '#ff0000' -border 5 \
-tile x1 -geometry 50x50+2+2 fmborder.png


fmborder.png




V-5.-Añadir sombreados: [-shadow]

Con esta opción simulamos una sombra alrededor de la imagen.

-shadow
-shadow %opacidad{xsigma}{±}x{±}y{%}


montage 00.png -shadow 00_shadow.png

Aquí será IM la que asignará las dimensiones del fondo (blanco) sobre el que se "proyectará" la sombra.
Con la opción [-geometry], como ya hemos visto, podemos controlar este aspecto.


00_shadow.png

montage 0[1-3].png -tile x1 -shadow \
-geometry 40x40+5+5 montage_shadow.png


montage_shadow.png

montage 0[1-3].png -tile x1 -frame 5 -shadow \
-geometry +5+5 frame_shadow.png


frame_shadow.png

Como puede observarse,la sombra que se añade es de un color semitransparente,lo que ocasiona que se vea afectada por el color del fondo. También debe notarse que no se tiene en cuenta el espaciado entre imágenes que se haya indicado en la opción [-geometry], con lo que, cuando las imágenes estén demasiado juntas, sus sombras pueden solaparse.





V-6.-El color del fondo: [-background]

Con esta opción podemos personalizar el color del fondo de las imágenes output.

Como veremos en los ejemplos, esta opción puede utilizarse con los comandos [montage] y [convert]

-background color

El color se definirá según uno de los siguientes formatos:

La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color


montage 0[1-3].png -tile x1 -shadow -background none \
-geometry +5+5 montage_back_none.png


montage_back_none.png

montage 0[1-3].png -tile x1 -shadow -background yellow \
-geometry +5+5 montage_back_yellow.png


montage_back_yellow.png

montage tapies1.png -geometry +10+10 \
-background '#000000' tapies-b.png


tapies-b.png




V-7.-Textura de fondo: [-texture]

El lugar de definir un color, como fondo de una imagen pueden utilizarse texturas.

Como veremos en los ejemplos, esta opción puede utilizarse con los comandos [montage] y [convert]

-texture nombrearchivo

El argumento nombrearchivo se refiere al archivo de la textura que deseamos como fondo de la imagen


montage 0[1-3].png -tile x1 -geometry +10+10 \
-texture textura0.jpg montage-t.png

(El archivo de la textura (textura0.jpg) se encuentra en el mismo directorio de las imágenes que se montan.)


montage-t.png

montage tapies1.png -geometry +10+10 \
-texture '/home/user/texturas/textura1.jpg' tapies-t.png

(El archivo de la textura (textura1.jpg) se encuentra en un directorio distinto al de las imágenes que se montan.)


tapies-t.png




V-8.-Cambio de color: La opción [-opaque]

Con esta opción cambiamos el color que determinamos en el argumento por el color que declaremos en la opción [-fill]

Si no se declara ninguna opción [-fill], el color se volverá absolutamente opaco (negro).

convert input -fill color -opaque color output

El color se definirá según uno de los siguientes formatos:

La lista de los nombres de los colores disponibles puede obtenerse ejecutando el comando: convert -list color

convert input.png -fill red -opaque yellow output.png

Con la anterior orden el color amarillo (yellow) del input será sustituido por el color rojo (red) declarado en la opción [-fill]

Veamos un ejemplo:


Partimos de la siguiente imagen:


fill.png

convert RGB.png -fill gray -opaque red -fill yellow -opaque blue GGY.png

Con la anterior orden hemos cambiado el color rojo (red) por el gris (gray) y el color azul (blue) por el amarillo (yellow).


GGY.png




V-9.-Cambiar un color en la imagen: [-floodfill]

Esta opción nos permite cambiar un determinado color de la imagen por el especificado en la opción [-fill].

convert input -fill color -floodfill ±x±y colorr output

Con el argumento ±x±y colorr determinamos el punto de inicio y el color a cambiar por el especificado en la opción [-fill].

El "grado de tolerancia" con que debe considerarse el color a cambiar ( colorr) puede establecerse mediante la opción [-fuzz].

Unos cuantos ejemplos nos ayudarán a comprender mejor el modo de actuar de esta opción.


Partiremos de la imagen macba.png

convert macba.png -fill red -floodfill +95+32 '#ffffff' flood-0.png

Le hemos dado una localización: +95+32 y un color: '#ffffff'( blanco): [-floodfill] cambiará a rojo, a partir del punto establecido, cualquier pixel blanco que encuentre. Como podemos apreciar, solo ha encontrado blanco puro en una pequeña área.

Si nos interesara llenar de rojo toda el área derecha de la imagen que posee un tono "blancuzco", deberiamos "relativizar" o mejor, "ampliar" la consideración de "blanco". Para ello utilizariamos la opción [-fuzz]

convert macba.png -fill red -fuzz 10% -floodfill +95+32 '#ffffff' flood-10.png

Con la anterior orden hemos "ampliado" la consideración de blanco un 10% , englobando en ella tonos de gris: como puede observarse se ha ampliado también el área coloreada de rojo.

Veamos lo que ocurre con porcentajes del 15% y 20% ( imágenes flood-15.png y flood-20.png, respectivamente.)





V-10.- Transparencia del color: [-transparent]

Con IM podemos establecer que color será tratado como transparente, mediante la opción [-transparent].

Debemos tener en cuenta que esta opción solo operará en inputs y outputs cuyos formatos "soporten" transparencia ( PNG, GIF, XCF,PSD..)

convert -transparent color input output

El color se definirá según uno de los siguientes formatos:

La lista de los nombres de los colores disponibles puede obtenerse ejecutando el comando: convert -list color


Veamos unos ejemplos

Partimos de la siguiente imagen: compuesta por los siguientes colores:

Rojo: red / "rgb(255,0,0)" / "#ff0000"

Verde: green / "rgb(0,255,0)" / "#00ff00"

Azul: blue /"rgb( ,0,255)" / "#0000ff"


RGB.png

Si quisiéramos dar transparencia al color verde, la orden seria:

convert -transparent "#00ff00" RGB.png RB.gif


RB.gif




Incorporar texto a las imágenes.

Con las siguientes opciones se van a ver los métodos mas directos de rotular una imagen.





V-11.-Etiquetando imágenes con [-label]

Mediante la opción [-label] puede hacerse que el comando [montage] etiquete ,de forma visible, las imágenes que componen el output.

Este es un uso diferente de [-label] del que se vió al tratar la misma opción en el ámbito de los [Metadatos] [-label].

Deberemos considerar la necesidad de redimensionar las imágenes para que el texto de la etiqueta no quede truncado.

Veamos unos ejemplos de la utilización de esta opción con el comando [montage]


Partiremos de las imágenes, de 50x50 px :  00.png,  01.png,  02.png y  03.png

Veamos las siguientes órdenes:

montage -label '%f' -tile x1 -geometry 20x20+1+1 0[0-3].png lab_20.png

montage -label '%f' -tile x1 -geometry 40x40+1+1 0[0-3].png lab_40.png

En la primera de ellas, ( lab_20.png), al asignar unas dimensiones de 20x20 px por "celda", el texto de la etiqueta se ve truncado.

En la segunda ( lab_40.png ), con una geometria de 40x40 px por celda, el texto de cada etiqueta aparece "entero".


lab_20.png

lab_40.png

Podemos utilizar también cadenas de texto, solas o en combinación con los carácteres especiades de formato.

También es posible operar sobre una sola imagen.

A partir de la imagen  roses.jpg:

montage -geometry 100x75+10+10 -shadow \
-label "Roses" roses.jpg roses.png

montage -geometry 100x75+15+15 -shadow \
-label "Roses (%wx%h/%b)" roses.jpg roses.gif


roses.jpg (200x150 px)

roses.png

roses.gif


Podemos usar la opción [-set], para añadir más información a las imágenes.... asi como más elementos de montaje:


montage 00.png 01.png 02.png 03.png null: 04.png -tile x1 \
-geometry '90x32+2+2>' -set label '%f\n%wx%h' -background Yellow label_set.png


label_set.png

También tenemos la posibilidad de rotular selectivamente las imágenes durante la operación con [montage] : Usando [-label] o [+label] :


montage 00.png -label 'Uno' 01.png +label 02.png -label ' ' 03.png\
-tile x1 -frame 5 -geometry '60x60+2+2>' labeling.png


labeling.png

En el ejemplo anterior vemos como las celdas correspondientes a las imágenes  00.png y  02.png no tienen espacios de etiqueta, mientras que en la celda correspondiente a la imagen  03.png se ha creado un espacio para etiqueta vacio mediante -label ' '. Más adelante se explicará la diferencia entre -label '' y +label

No siempre es preciso especificar el etiquetado de las imágenes durante el proceso de montaje. Algunos formatos ( PNG, MIFF ...) pueden guardar una etiqueta como parte de su formato de imagen; [montage] etiquetará automaticamente una imagen leyendo la etiqueta que contenga el archivo de esta. Este es un proceso automático que no necesita especificarse.

Vemos un ejemplo:


En primer lugar vamos a asignar etiquetas a las imágenes:

mogrify -label 'Cero' 00.png
mogrify -label 'Uno' 01.png
mogrify -label 'Dos' 02.png
mogrify -label 'Tres' 03.png

Con el comando:

identify -format %l 0[0-3].png

podremos comprobar que efectivamente, cada uno de los archivos de imagen contiene la etiqueta asignada.

Si sobre las anteriores imágenes aplicamos el comando [montage], sin especificar etiquetas:

montage 0[0-3].png -tile x1 -geometry 60x60+2+2 label_auto.png

Podremos observar como se han etiquetado automáticamente las imágenes con el valor del atributo "label" contenido en sus respectivos archivos.


label_auto.png

Si se quiere evitar el rotulado automático de las imágenes que contienen una etiqueta en sus archivos, será preciso eliminar estas mediante -label ' ' . Aquí es donde se ve la diferencia entre usar la opción [-label] con la cadena vacia " " y usar la opción [+label]: La primera , como se vió al tratar de la opción [-label] en [Metadatos] [-label], elimina cualquier etiqueta del archivo de la imagen. La segunda "desactiva" las etiquetas para en el proceso en que se esté usando, sin eliminarlas. [Aquí] puede verse como "funcionan" estas dos formas de label.





V-12.-Poniendo títulos: [-title]

Mediante esta opción podemos colocar un título a una imagen. Se utilizará la misma fuente tipográfica que la utilizada en las etiquetas, aunque en el título el tamaño será mayor.

En el título pueden incluirse [Caracteres especiales de formato].

convert -title 'cadena' input1 input2 ....inputn output


montage 0[0-3].png -tile x1 -geometry 60x60+2+2 \
-title 'Secuencia de números' titulo.png


titulo.png




V-13.-El color del texto: [-fill]

Esta opción se utiliza para rellenar de color un gráfico elemental ( Ver la opción [-draw] para mas detalles).

Aquí va a utilizarse para determinar el color del texto.

Puede utilizarse con los comandos [montage] y [convert]. Cuando se utiliza con [montage] su argumento determinará el color del texto de las etiquetas y título del montaje.

-fill color

El color se definirá según uno de los siguientes formatos:

La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color


montage -label '%f' -title 'Del Uno al Tres' -fill '#ff0000'\
-tile x1 -geometry 60x60+1+1 0[1-3].png fill.png


fill.png




V-14.-La opción: [-stroke]

Esta opción se utiliza para determinar el color de trazo de un gráfico elemental.(Ver la opción [-draw] para mas detalles)

Cuando se utilice con el comando [montage], su argumento nos determinará el color de un borde exterior alrededor de los caracteres del texto del título y las etiquetas del montaje.

-stroke color

El color se definirá según uno de los siguientes formatos:

La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color


montage -title 'Uno y Dos' -fill '#ff0000' -stroke Yellow \
-tile x1 -geometry 60x60+1+1 0[1-2].png stroke.png


stroke.png




V-15.-La opción: [-strokewidth]

Mediante esta opción determinamos el grosor de trazo, en pixels, de la opción [-stroke].

-strokewidth valor

-strokewidth 5



V-16.-Anotar una imagen con texto: [-annotate]

Con las anteriores opciones, [-label] y [-title] introducíamos rótulos en montajes de imágenes. Con la opción [-watermark] marcábamos la imagen con una marca de agua. Con la opción [-annotate] podremos "escribir" en la imagen. Su sintaxis básica es:

convert -annotate RxxRy±x±y 'texto' input output

La anotación puede guardarse en un archivo de texto. [-annotate] puede leerlo siempre que se preceda el nombre del archivo con el signo @, del mismo modo que se explicó en [-comment]

convert -annotate RxxRy±x±y @archivo.txt input output

Con la opción [-fill] podemos personalizar el color del texto de la anotación.

También podemos utilizar las opciones [-stroke] y [-strokewidth]:


convert -annotate 0x0+20+20 'linea de pajaros'\
linea.png linea-a.png

convert -fill red -annotate 0x0+20+20 'linea de pajaros'\
linea.png linea-a.png


La opción [-gravity] puede utilizarse para especificar la localización de la anotación en la imagen.

Existen otras opciones que nos permitirian una mayor personalización de las anotaciones en imágenes:





V-17.-Tamaño de la fuente de texto: [-pointsize]

Con esta opción podemos fijar el tamaño de la fuente del texto.

-pointsize n

n: Tamaño de la fuente.





V-18.-Fijar la fuente de texto: [-font]

Con esta opción fijamos la fuente a utilizar, ya sea en la anotación de imágenes como en las etiquetas.

-font nombre_fuente

La lista de fuentes disponibles puede verse ejecutando el comando convert -list font

Cuando se deseen utilizar fuentes de ancho fijo ( tipo máquina de escribir) deberán especificarse con la opción [-text-font]





V-19.-[-text-font]

Especifica el nombre de la fuente a usar cuando se desea que sea de tipo "fijo" (tipo máquina de escribir). Por defecto se usarla Courrier 14 p.

-text-font nombre_fuente



V-20.-Resaltar el texto de una anotación (obsoleto): [-box]

Con esta opción podemos resaltar la anotación de forma personalizable, lo que puede facilitar su legibilidad.

-box color

El argumento color se definirá de la misma forma que en las opciones en que deba definirse un color,como las recién vistas [-fill]., [-stroke] y otras.


Veamos unos ejemplos de todas estas posibilidades de anotación:


convert -pointsize 14 -font URW-Gothic-Book -fill red -box yellow \
-annotate 20x0+10+30 'www.rpublica.net' linea.png linea-1.png

convert -pointsize 14 -font URW-Gothic-Book -fill red -box yellow \
-annotate 0x30+10+30 'www.rpublica.net' linea.png linea-2.png


Veamos ahora la utilización de [-gravity] para localizar la anotación en la imagen.

Debemos tener en cuenta que al utilizar esta opción, los argumentos de localización de [-annotate], X e Y, deben ser +0+0, ya que la localización se realizará através de [-gravity].

convert -pointsize 14 -font URW-Gothic-Book -fill red -box yellow \
-gravity G -annotate 0x30+0+0 'www.rpublica.net' linea.png output.png


G=NorthWest

G=NorthEast

G=SouthEast

G=SouthWest

G=Center




V-21.-Resaltar el texto de una anotación: [-undercolor]

Esta opción es la versión actualizada de la opción [-box]. Se aconseja ir reemplazando a utilización de [-box] por [-undercolor]. Todo lo dicho en [-box] es aplicable a [-undercolor]

-undercolor color


convert -size 200x150 xc:lightblue \
-font Times-Roman -pointsize 20 -undercolor blue -fill white -annotate +15+75 'Undercolor' \
-font Palatino-Bold -pointsize 22 -undercolor yellow -fill red -annotate 0x20+15+120 'Undercolor bis' undercolor.png





[ 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