Dispersar los píxeles de una imagen con ImageMagick
En este artículo vamos a ver cómo dispersar los píxeles de una imagen con el operador -spread de ImageMagick.
El operador -spread desplazar aleatoriamente los píxeles de la imagen alrededor del radio indicado.
Partamos de esta imagen para ver cómo dispersa los píxeles:
Cuanto menor sea el tamaño del ratio, menor será la dispersión. Veamos la dispersión generada con un ratio de 1:
convert gato.jpg -spread 1 gato_1.jpg
Los valores pueden ser positivos o negativos. Con valores negativos, la dispersión es más evidente.
Veamos la dispersión con -1:
convert gato.jpg -spread -1 gato_-1.jpg
El operador -spread acepta cualquier valor, si bien a partir de 100, la dispersión es tan grande que sólo genera manchas:
convert gato.jpg -spread 100 gato_100.jpg
Por lo que para que se distinga la imagen, es mejor trabajar con un valor pequeño, hasta 5 como mucho:
convert gato.jpg -spread 5 gato_5.jpg
El operador -spread en vídeo
Podemos generar un vídeo a partir de una imagen que empiece con sus píxeles muy dispersos (en este caso, desde -spread 50) y vayan agrupándose. Al final, dejo un segundo la imagen original:
#!/bin/bash name=${1%%.*} for i in {50..0..-1} do if [ $i -ne 0 ] then for x in 1 2 do convert $1 -spread $i png:- done else for x in {1..24} do convert $1 png:- done fi done | ffmpeg -f image2pipe -i - ${name}.mp4
En caso de querer modificar el número de fotogramas, lo podemos hacer cambiando la línea 5 sustituyendo:
for i in {50..0..-1}
por otros valores. Aumentando o disminuyendo el comienzo del rango y del paso.
O cambiando en la línea 9 el número de repeticiones por valor de -spread, para que la animación sea más o menos fluida.
También, si consideramos que los 24 fotogramas para que muestre la imagen original no son la cantidad correcta, lo podemos modificar en la línea 14.
El resultado de pasar como parámetro la imagen original de este artículo con el script: