Cambiar un color con ImageMagick

Cambiar un color por otro en ImageMagick es sumamente fácil cuando es un color sólido. Pero incluso cuando no es un color sólido, podemos definir el porcentaje de ese color que queremos modificar.

Vamos a crear una imagen con franjas y bordes de distintos colores:

convert -size 100x145 xc:yellow -bordercolor blue -border 50 -bordercolor red -border 50 -bordercolor green -border 50 -bordercolor white -border 100x0 -bordercolor black -border 100x0 recuadros.jpg

convert -size 100x145 xc:yellow -bordercolor blue -border 50 -bordercolor red -border 50 -bordercolor green -border 50 -bordercolor white -border 100x0 -bordercolor black -border 100x0 recuadros.jpg

Ahora podemos cambiar cualquiera de los colores. Lo haremos indicando -fuzz $porcentaje% con la distancia de color; el nuevo color con -fill $color_nuevo, con el que vamos a sustituir al antiguo y con -opaque $color_original el color a sustituir:

convert recuadros.jpg -fuzz 10% -fill black -opaque red sinrojo.jpg

Podemos cambiar más de un color a la vez:

convert recuadros.jpg -fuzz 10% -fill black -opaque red -opaque yellow sin_rojo_ni_amarillo.jpg

convert recuadros.jpg -fuzz 10% -fill black -opaque red -opaque yellow sin_rojo_ni_amarillo.jpg

 

O varios cambios de color en la misma instrucción:

convert recuadros.jpg -fuzz 10% -fill black -opaque red -opaque yellow -fuzz 10% -fill red -opaque green sin_rojo_ni_amarillo_verde_por_rojo.jpg

convert recuadros.jpg -fuzz 10% -fill black -opaque red -opaque yellow -fuzz 10% -fill red -opaque green sin_rojo_ni_amarillo_verde_por_rojo.jpg

 

Si lo que queremos es cambiar un color por otro, lo que tendremos que hacer es jugar con un color intermedio. Por ejemplo, convertir el negro en morado, el rojo en negro y el morado en rojo. En ningún momento aparecerá el morado en la imagen resultante, pero es un paso intermedio necesario para poder invertir los colores sin tener que generar una imagen temporal:

convert recuadros.jpg -fuzz 10% -fill purple -opaque black -fuzz 10% -fill black -opaque red -fuzz 10% -fill red -opaque purple rojo_por_negro.jpg

 

Un comentario en «Cambiar un color con ImageMagick»

Deja una respuesta

Tu dirección de correo electrónico no será publicada.