Promediar imágenes con ImageMagick: el parámetro -average

A veces nos puede interesar generar una imagen promediada de dos imágenes. Las utilidades son muchas: bien porque queramos hacer una transición en un vídeo, bien porque queramos aplicar un filtro a una imagen y generar el promedio con la imagen original o bien porque queramos hacer un montaje con dos imágenes... Las limitaciones aquí, como en cualquier otro campo, son casi exclusivamente las que la imaginación que el autor tiene.  Para generar una imagen con el promedio de otras dos o más imágenes tenemos el parámetro -average. Digo que se pueden unir dos o más imágenes, pero cuidado con el abuso que unir muchas imágenes que puede generar un pastiche sin sentido... o un maravilloso caos. La instrucción sería: convert imagen1.png imagen2.png [... imagenN.png ] -average imagenpromediada.png Veamos varios ejemplos: Promediar una imagen con una modificación de esa imagen  Tomaremos como referencia una de las torres que hay a la entrada por Isabel la Católica del Parque Grande José Antonio Labordeta de Zaragoza: Y le vamos a aplicar un efecto. Por ejemplo, sombrearlo con -shade:convert torre_entrada_parque_grande.jpg -shade 15x45 torre_sombreada.jpg Los perfiles son los mismos, pero los colores no lo son, así que nos vendrá bien para ver cómo trabaja -average:convert…
Leer más ...

Unir imágenes en horizontal y vertical con ImageMagick

En ImageMagick podemos unir imágenes de muchas maneras. La más sencilla es juntarlas de forma horizontal o vertical con append.  Creamos dos imágenes, una azul y otra amarilla para usarlas como ejemplo: convert -size 200x200 xc:Yellow amarillo.jpg convert -size 200x200 xc:Blue azul.jpg   Unión horizontal con +append Para hacer una unión horizontal le indicaremos a convert primero el listado de imágenes que queramos concatenar y que las una horizontalmente con +append. Por último, el fichero destino: convert amarillo.jpg azul.jpg +append amarilloazulhorizontal.jpg Unión vertical con -append Para hacer una unión horizontal le indicaremos a convert primero el listado de imágenes que queramos concatenar y que las una horizontalmente con -append. Por último, el fichero destino: convert amarillo.jpg azul.jpg -append amarilloazulvertical.jpg  
Leer más ...

Voltear horizontal o verticalmente una imagen con ImageMagick con -flip y -flop

Para voltear una imagen en ImageMagick tenemos dos parámetros que lo hacen sin tener que aplicarles valores ni tener que calcular nada: son los parámetros flip y flop. Vamos a coger una imagen de un cielo: Espejo vertical Para hacer un espejo horizontal de una imagen, usaremos el parámetro -flip: convert cielo.jpg -flip cieloespejovertical.jpg   Espejo horizontal Para hacer un espejo horizontal de una imagen, usaremos el parámetro -flip: convert cielo.jpg -flop cieloespejohorizontal.jpg  
Leer más ...

Cambiar automáticamente a la orientación correcta una fotografía con -auto-orient

Hemos estado haciendo fotos y resulta que algunas de las fotos que hemos hecho sin darnos cuenta las hemos hecho con la cámara en vertical o en horizontal. Pues, tranquilos, que esto tiene una solución fácil con ImageMagick. Gracias al parámetro -auto-orient Veamos una foto que he hecho con la cámara en posición vertical:   Para verla bien, podemos girar la cabeza o la pantalla 90 grados, pero es más interesante si a quien mostramos esa foto la puede ver con la orientación correcta. Para ello, podemos girarla, pero, ¿qué pasa si no sabemos si está una imagen está orientada correctamente (por ejemplo, cuando hacemos un script que procesa miles de imágenes automáticamente o si no recibimos en un script una imagen que no hemos visto)? La solución la tenemos con el parámetro -auto-orient: convert parque_roma.jpg -auto-orient parque_roma_bien_orientada.jpg   Solucionado. 
Leer más ...

Comandos de ImageMagick I: convert y mogrify

ImageMagick no es un único progrma, sino un conjunto de comandos complementarios, pero cada uno con unas funcionalidades distintas. En esta ocasión veremos convert y mogrify, dos comandos que realizan modificaciones sobre ficheros de imágenes, pero con una diferencia fundamental: convert genera un nuevo fichero con las modificaciones mientras que mogrify aplica las modificaciones sobre el fichero origen.  Con mogify ahorramos espacio en disco ya que no generamos nuevos ficheros, pero sus cambios son irreversibles.  Con convert mantenemos la imagen original intacta, pero, a cambio, consumimos espacio en disco con cada nuevo fichero. Y cuando generamos vídeos u otros procesos en lotes grandes, a veces corremos el riesgo de llenar el disco duro del ordenador, máxime si hacemos vídeos con ratios de 60 fotogramas por segundo y en 4k. (Cada fotograma en png puede pesar 7/8 Mb x 60 fotogramas por segundo, podemos estar generando entre 400 y 500 Mb por cada segundo de vídeo. ¡Más de 20 Gb por minuto! Y si a esto le añadimos los ficheros auxiliares que podamos usar para generar el vídeo, como cartelas, fotogramas para superponer, subtítulos, degradados... tenemos que trabajar con cuidado. iremos viendo cómo optimizar el trabajo.  Uso de convert y mogrify…
Leer más ...

¿Qué es ImageMagick?

15 Agosto 2018 by 0 Comment Multimedia 116 Views
Introducción ImageMagick es una suite de edición de imágenes en modo consola. Es decir, es un conjunto de comandos para trabajar con imágenes, con una serie de comandos que cada uno realiza una serie de procesos para cubrir todo el abanico de necesidades que un usuario pueda tener para cualquier actividad gráfica, tanto con mapa de bits como con vectores.  ImageMagick tiene una serie de características que le convierten en una herramienta muy útil para cualquier diseñador gráfico, fotógrafo o simplemente aficionados a la imagen, pero también para el trabajo con vídeo, ya que, en esencia, un vídeo no es más que una sucesión de imágenes.  Es software libre, por lo que, además todas la implicaciones que conlleva la libertad, garantiza que su calidad es muy superior a cualquier programa privativo, al tener una comunidad de desarrolladores que soluciona cualquier problema que pudiera tener, así como una continua evolución adaptándose siempre a las demandas de los usuarios. Es multiplataforma, por lo que podemos aprender a usar ImageMagick en un sistema operativo y podremos usarlo en cualquier otro sistema operativo con el que nos toque trabajar. Es en modo consola, por lo que podemos hacer scripts que automaticen los procesos, así…
Leer más ...

Cambiar el tamaño del lienzo en ImageMagick. El parámetro extent

Ya sabemos algunas formas de recortar una imagen con ImageMagick con el parámetro -crop:Ajustar una imagen a un determinado tamañoCortar horizontal y verticalmente una imagenCortar horizontal o verticalmente una imagenPero, ¿y si queremos hacer más grande el lienzo? Para eso tenemos el parámetro -extent. Su uso básico es: convert $origen -extent $anchoX$alto $destino Con esta instrucción definimos el tamaño del fichero destino, sea este mayor o menor que el de la imagen origen.  Cambiar el tamaño del lienzo por uno más pequeño Veamos una imagen:Y queremos quedarnos únicamente con el escudo. Haremos un recorte de 200x150 pixeles. convert farola.jpg -extent 200x150 recorte.jpgOoooops... Queríamos un león y sólo se le ve un trozo de las garras. Esto ha pasado porque, al no definir la gravedad, ha tomado como referencia el punto 0x0. Así que, como lo que queríamos era la parte central de la imagen, lo definiremos con -gravity center:convert farola.jpg -gravity center -extent 200x200 leon.jpg Hacer más grande el tamaño del lienzo Como hemos visto, -extent permite cambiar el tamaño del lienzo, por lo que también podemos hacer el lienzo más grande. Vamos verlo: convert leon.jpg -gravity center -extent 300x300 leonenmarcado.jpg Ahora tenemos el león centrado en un lienzo blanco de…
Leer más ...

La gravedad en ImageMagick: el parámetro -gravity

En ImageMagick podemos usar once puntos de referencia a la hora de alinear elementos, hacer recortes, ajustar o cualquier otra acción que implique el uso de unas coordenadas. Estos son:   None -> Sin punto de gravedad. Toma como referencia orientativa la esquina superior izquierda a la hora de hacer un mapa de bits, pero como los dibujos vectoriales no tienen punto de gravedad es mejor usar esta opción cuando vamos a hacer una imagen vectorial.  Center-> El centro. El punto resultante de calcular $anchura/2 x $altura/2 East-> Centro derecha. El punto resultante de calcular $anchura x $altura/2 Forget -> No hace uso del parámetro gravity, por lo que toma como referencia 0x0.  NorthEast -> Esquina superior derecha. El punto $anchura x 0 North -> Centro superior. El punto $anchura/2 x 0 NorthWest -> Esquina superior izquierda. El punto 0 x 0 SouthEast -> Esquina inferior derecha. El punto $anchura x $altura South -> Centro inferior. El punto $anchura/2 x $altura SouthWest -> Esquina inferir izquierda. El punto $anchura x 0 West -> Centro izquiera. El punto $altura/2 x 0 Listar los puntos de gravedad Para listar los puntos de gravedad, como con cualquier otro listado en ImageMagick, podemos usar el parámetro -list.…
Leer más ...

Superponer una imagen a otra en ImageMagick: composite

Para superponer una imagen sobre otra en ImageMagick tenemos el comando composite que, en su uso más básico se utiliza:composite $imagensuperior $imageninferior $imagendestino Veamos una prueba sencilla:convert -size 50x50 xc:blue cuadroazul.png convert -size 100x50 xc:red fondorojo.pngCon estos comandos hemos creado dos imágenes: una, llamada fondorojo.png que 100x50 pixeles y otra de mitad de tamaño, 50x50 llamada cuadroazul.png. Y para superponerlas, escribiremos:composite cuadroazul.png fondorojo.png montajeazulsobrerojo.png
Leer más ...

El parámetro -crop de ImageMagick (III): dividir horizontal o verticalmente una imagen

Ya hemos visto cómo dividir horizontal y verticalmente en partes iguales una imagen, pero, ¿y si queremos hacer la dividisión únicamente en un eje? Se lo indicaremos a crop con el porcentaje seguido de x100% si queremos que los cortes sean verticales o con 100%x seguido del porcentaje si queremos que la división sea horizontal. Así: convert $origen -crop 50%x100% $corteshorizontalesconvert $origen -crop 100%x50% $cortesverticales Veamos un ejemplo: supongamos que queremos desordenar aleatoriamente una imagen en 10 franjas verticales. Para pasar de: A esto (o parecido, porque al ser aleatorio, cada vez que ejecutemos el script nos generará una imagen distinta):  Veamos el script:     #!/bin/bash origen="guarderia_calle_Reino.jpg" destino="guarderia_desordenada.jpg" ordendeimagenes="" convert $origen -crop 10%x100% temporales%d.jpg numerosaleatorios=$(shuf -i 0-9) for i in $(seq 1 10) do       posicion=$(echo $numerosaleatorios | cut -d " " -f $i)       ordendeimagenes="temporales"$posicion".jpg "$ordendeimagenes done convert $ordendeimagenes +append $destino Explicación del script Como siempre, vamos a ver paso a paso qué hemos hecho en este script: #!/bin/bash -> Para indicar el shell que queremos usarDespués, las variables que vamos a utilizar. No me cansaré de repetir que ser ordenados ayuda a mantener y mejorar nuestros scripts, así como que otras personas puedan adaptarlos a sus necesidades. convert…
Leer más ...

El parámetro -crop de ImageMagick (II): dividir imágenes en partes iguales

A todos nos encantan las pantallas gigantes en los conciertos, en escaparates, en espectáculos y eventos de todo tipo... en general, en cualquier sitio donde vemos pantallas, nos quedamos mirándolas (por eso las ponen). Y si además, las imágenes cambian si interactuamos con la pantalla o con el entorno, nos gustan más todavía (por ejemplo, imágenes procesadas sobre la marcha con ImageMagick). Y cuanto más grandess sean, mejor. Tanto es así, que muchas veces se utilizan varias pantallas para mostar una imagen.  Y si somos nosotros los que programamos la interacción con los usuarios, lo último que queremos es que se vea mal o que se descuadre la imagen al mostrarse en las pantallas. Así que vamos a ver cómo dividir una imagen para mostrar cada una de las partes en una pantalla distinta. Usaremos una imagen cualquiera:   Y supongamos que queremos dividirla en cuatro imágenes iguales para cuatro pantallas distintas. ¿Cómo lo haremos? Cortando por la mitad horizontalmente y por la mitad verticalmente. Es decir, al 50% horizontalmente y al 50% verticalmente. Esto es muy importante, porque instintivamente podemos pensar en divididir al 25%. Pero esto nos haría cuatro cortes (100/25=4) horizontales y otros tantos cortes verticales, por…
Leer más ...

Saber la altura y anchura de una imagen con ImageMagick

¿Necesitas saber el tamaño de una imagen para poder trabajar con ella, ajustarla a un tamaño determinado, ampliarla, reducirla o recortarla? ImageMagick te lo dice con el comando identify y el parámetro -format. Para saber el tamaño, trabajaremos con dos modificadores:  identify -format %w -> Nos inidca la anchuraidentify -format %h -> Nos indica la altura En consola identify -format %w imagen.png identify -format %h imagen.png Devuelve la anchura y la altura respectivamente, de la imagen contenida en imagen.png En script Si queremos sacarle más partido y pasarle esos valores a una variable numérica: let anchura=$(identify -format %w imagen.png) let altura=$(identify -format %h imagen.png)Con esto, ya podremos operar con los valores de las variables $anchura y $altura.
Leer más ...

El parámetro -crop de ImageMagick (I): ajustar imágenes

Cada vez las cámaras fotografían con mayor resolución, incluso con resoluciones mayores a las pantallas en las que vemos esa imagen. Y esto nos da mucho juego para poder manipular las imágenes haciendo recortes que nos permitan, entre otras cosas: Ajustar la fotografía a aquello que queremos mostrar, quitando todo lo que sobra alrededor  Veamos esta fotografía de la escultura de Miguel Servet en la antigua facultad de medicina de Zaragoza: Si queremos mostrar únicamente la escultura, sobra imagen por todos los lados. Avuelapluma y sin ajustar demasiado (estamos hablando de ImageMagick, no de armonía, ni de composición), pienso que podemos quitar 1/7 por arriba y por abajo y alrededor de 1/5 a izquierda y derecha, así que, como ya sabemos cómo preguntarle a ImageMagick el tamaño de las imágenes, voy a hacer esos recortes: #!/bin/bashorigen="servet.jpg"destino="servet_recortado.jpg"let anchura=$(identify -format %w $origen) let altura=$(identify -format %h $origen)let anchurarecorte=$anchura/5let alturarecorte=$altura/7let nuevaanchura=$anchurarecorte*3let nuevaaltura=$alturarecorte*5recorte=$nuevaanchura"x"$nuevaaltura"+"$anchurarecorte"+"$alturarecorteconvert $origen -crop $recorte $destino Veamos lo que he hecho en este script:  Primero, indicarle que estamos escribiendo un script en Bash con #!/bin/bashE indicarle cual es la imagen que vamos a procesar y cómo queremos que se guarde la imagen modificada, Aunque esta sea una operación sencilla, siempre viene bien ser ordenados…
Leer más ...

Los colores predefinidos en ImageMagick

02 Agosto 2018 by 3 Comment Multimedia 165 Views
ImageMagick cuenta con una serie de colores predefinidos a los que podemos llamar por su nombre en lugar de por su código hexadecimal. Es más cómodo invocarlos por su nombre, aunque es más preciso hacerlo por su código. Así que cada uno que elija lo que más le interese, aunque en este artículo nos vamos a centrar en los colores preestablecidos y cómo sacarle partido a este listado.  Saber los colores predefinidos con los que podemos trabajar Para poder listar en ImageMagick está el parámetro -list.  convert -list $listaamostrar Nos mostrará la lista que le pidamos. En este caso, le pediremos que liste los colores: convert -list color Y nos mostrará el listado de colores. En mi caso: $ convert -list color | wc -l$ convert -list color | wc -l683 Me dice que tengo 683 colores predefinidos. Con wc -l le he pedido que me diga únicamente las líneas del listado, no el listado en sí, y así sé el número de colores que tengo.  Saber los tonos de un determinado color Si quiero saber los distintos colores predefinidos basados en un determinado color, lo que puedo hacer es redirigir la salida del listado a un grep e indicarle…
Leer más ...
Página 1 de 3

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Vea nuestra política de cookies y enlaces de interés aquí