Efecto pintura al óleo con ImageMagick
ImageMagick cuenta con algunos filtros que realizan efectos artísticos. No llega al nivel de espectacularidad de G’MIC, pero genera resultados llamativos. Uno de esos filtros es el que vamos a ver a continuación: -paint, que emula una pintura al óleo a partir de una imagen dada.
Como lo que realiza -paint es una agrupación de pixeles, si la imagen tiene pocos colores o pocas figuras, no conseguiremos el efecto.
Vamos crear una imagen con tres franjas, roja, verde y azul:
$ convert -size 800x150 xc:red xc:green xc:blue -append rgb.jpg
Y ahora vamos a darle un valor altísimo, por ejemplo de 100:
$ convert rgb.jpg -paint 100 rgb_paint.jpg
Ni siquiera un valor tan alto como 100 ha generado una distorsión en unos píxeles tan agrupados y tan iguales.
Para ver el efecto de paint, vamos a ver una fotografía con cambios de color:
Y empezaremos viendo una curiosidad, que es que le podemos aplicar un valor negrativo, pero siempre devuelve el mismo resultado, independientemente del valor aplicado:
convert puertadealcala.jpg -paint -1 puertadealcala-1.jpg
convert puertadealcala.jpg -paint -100 puertadealcala-100.jpg
Para usar el efecto -paint, suele ser más elegante con valores bajos, entre 1 y 10, más o menos, y en función tanto de la imagen original como del resultado que busquemos.
convert puertadealcala.jpg -paint 1 puertadealcala_1.jpg
convert puertadealcala.jpg -paint 5 puertadealcala_5.jpg
convert puertadealcala.jpg -paint 10 puertadealcala_10.jpg
Con valores muy altos, los resultados son excesivamente distintos a la imagen original.
convert puertadealcala.jpg -paint 50 puertadealcala_50.jpg
Como con cualquier otro efecto de ImageMagick, también podemos hacer animaciones:
#!/bin/bash for i in 1 do for x in {0..9} do for z in 1 2 3 do convert $1 -paint $x png:- done done for y in {10..1..-1} do for z in 1 2 3 do convert $1 -paint $y png:- done done done | ffmpeg -f image2pipe -i - ${1%%.*}.gif