Crear un lienzo con franjas horizontales o verticales
Para crear un lienzo con franjas horizontales o verticales en una única instrucción, lo que tenemos que hacer es generar individualmente cada una de las franjas y luego unirlas horizontalmente con +append
o verticalmente con -append
.
Veamos las dos partes de la instrucción a utilizar:
- Crear lienzos
- Unir los lienzos
Para crear un lienzo de un color uniforme tenemos que unir dos operadores:
- -size para determinar el tamaño del lienzo a crear
- xc: para indicar el color del lienzo
Y para unirlos, usaremos append que, en función del signo que lleve delante, unirá horizontal o verticalmente:
- -append une verticalmente
- +append une horizontalmente
A modo de truco y como el uso de los signos + y – con append me parece totalmente contraintuitivo, comento el nemotécnico que uso para recordar el uso de append:
El guión es una línea horizontal, la cruz es como un guión, pero con una línea vertical, y el logo de ImageMagick es un mago.
El mago le da la vuelta del revés a la lógica para crear sus juegos de ilusionismo, así que -append une verticalmente y +append une horizontalmente.
Franjas unidas verticalmente
convert -size 400x200 xc:salmon -size 400x200 xc:sienna -append lienzovertical.jpg
Genera:
Franjas unidas horizontalmente
Podemos unir franjas horizontalmente con:
convert -size 200x400 xc:moccasin -size 200x400 xc:navy +append lienzohorizontal.jpg
Franjas de distintos tamaños
Si unimos franjas de distinto tamaño, ImageMagick rellena con el color por defecto los huecos libres:
convert -size 200x400 xc:moccasin -size 200x200 xc:navy +append irregular.jpg
Pero podemos elegir la posición del lienzo a unir respecto al lienzo global con -gravity:
convert -size 200x400 xc:moccasin -size 200x200 xc:navy -gravity Center +append irregular_center.jpg
Unir más de dos franjas
Con append podemos unir tantas franjas como queramos, simplemente tenemos que crearlas antes de usar append:
convert -size 200x445 xc:salmon -size 200x445 xc:moccasin -size 200x445 xc:navy -size 200x445 xc:sienna +append cuatro_franjas.jpg
Y cuando unimos varias franjas también podemos usar -gravity. En este caso vamos a hacer la franja navy más pequeña y alineada abajo:
convert -size 200x445 xc:salmon -size 200x445 xc:moccasin -gravity south -size 200x200 xc:navy -size 200x445 xc:sienna +append cuatro_franjas_south.jpg
Incluso podemos alinear con distintos puntos de gravedad. Para ello, lo que tendremos que hacer es añadir con append cada vez que cambiemos de punto de gravedad:
convert -size 200x445 xc:salmon -size 200x200 xc:moccasin -gravity south +append -size 200x200 xc:navy -gravity north -size 200x445 xc:sienna +append cuatro_franjas_north_south.jpg
Unir horizontal y verticalmente
Igual que podemos unir con append distintos lienzos con distintos puntos de gravedad, podemos unir unos lienzos horizontalmente y otros verticalmente:
convert -size 200x200 xc:salmon -size 200x200 xc:moccasin +append -size 400x200 xc:sienna -append tres_lienzos.jpg
Pingback: Crear lienzos con degradados verticales con ImageMagick – Linux en Español
Pingback: Las distintas formas de componer (combinar) dos imágenes con ImageMagick – Linux en Español