Como añadir marca de agua rápidamente y de forma masiva

añadir marca de agua rápida y de forma masiva

Este es el método que uso actualmente para añadir las marcas de agua o watermarks a las imágenes del blog. Suelo tener bastantes fotos para los artículos y con este script en bash le añado la marca de agua en 2 o 3 segundos.

Hace un tiempo usaba GIMP para editarlos masivamente. Esta opción, que vimos en el blog sigue siendo válida, pero esto me parece mucho más rápido y como digo es lo que estoy utilizando ahora.

Este método es ideal también para fotógrafos que tienen que pasar imágenes marcadas a clientes, ya que en pocos segundos las tienes procesadas

Eso sí, es una solución para usuarios de Linux, yo estoy utilizando Ubuntu. Ahora te dejo el script y una explicación paso a paso para que no solo peudas utilizarlo sino que entiendas lo que hace y empieces a aprender BASH. Son tan solo 8 líneas.

Uso ImageMagick tienes que instalarlo para que el script te funcione. Abre la terminal y escribe

sudo apt install imagemagick

Con esto podremos usar las funciones de de ImageMagick, recortar, redimensionar, bajar de peso, cambiar e formato, combinar imágenes, etc, etc. Si squieres saber más ve a su web oficial.

Cómo funciona

Estreno GituHub con este script. Aún tengo que aprender a usarlo bien.

estructura archivos script watermark

El sistema que he preparado consta de 1 archivo, 1 imagen y 2 carpetas.

La carpeta photos es donde meto las imágenes a las que quiero añadir la marca de agua. Y En la carpeta output es donde aparecen ya editadas.

watermark-ikkarocom.png es la marca e agua que uso

archivo

Y por último está el archivo .sh watermark.sh que es el que contiene el código en BASH

Si no tienes claro qué es y como trabajar con los .sh aquí tienes dónde comenzar Cómo ejecutar un archivo .sh

Explicación del código paso a paso.

Una forma sencilla de aprender a programar en BASH es viendo ejemplos de scripts y programas ya hechos. Este es el código que uso.

#!/bin/bash

cd photos
for pic in *; do
    composite -dissolve 90% -gravity southeast -geometry +40+30 ../watermark-ikkarocom.png $pic ${pic//.jpg}-marked.jpg
done
mv *-marked.jpg ../output
rm *

Para facilitarte la comprensión lo explico por líneas.

#!/bin/bash

Es el shebang, que se usa para indicar el intérprete a utilizar para el código.

cd photos

Entramos en la carpeta photos, dónde habremos dejado las fotos a las que queremos añadir la marca de agua. Este proceso también podría automatizarse de enviando desde el móvil las imágenes directamente a la carpeta. Pero lo dejo para más adelante.

for pic in *; do

Inicio del bucle for, donde le decimos que para todas las fotos que haya en la carpeta hay que ejecutar las instrucciones que siguen

composite -dissolve 90% -gravity southeast -geometry +40+30 ../watermark-ikkarocom.png $pic ${pic//.jpg}-marked.jpg

Es la parte de ImageMagick. Le estamos diciendo que a las fotos de la carpeta le añadimos otra encima, en este caso «watermark-ikkarocom.png» con transparencia al 90% o 10% según quieras mirarlo. Ubicada en el sureste de la imagen, es decir , abajo derecha y con márgenes o separación de 40 y 30 px respecto a la imagen de fondo.

Además al nombre de las imágenes les mete el sufijo -marked. Para poder diferenciarlas de las que no hemos editado.

Aquí podríamos añadir más instrucciones y redimensionar la imagen, bajarle el peso o comprimirla.

Puedes usar el nombre de la marca de agua que quieras cambiando el watermark-ikarocom.png

done

determina donde acaba el bucle for

mv *-marked.jpg ../output

Las imágenes han quedado en la carpeta photos así que con esta línea le decimos que coja todas las que tengan ese sufijo -marked.jpg y las mueva a la carpeta output. Usa la ruta relativa. Los ../ es para subir de directorio hasta donde se encuentra output y entonces entrar dentro.

rm *

Por último como ya tenemos nuestras fotos en output borramos todos los archivos .jpg que haya en photos.

Mejoras

Haciendo el artículo me he dado cuenta de varias mejoras.

  • Siempre guardo en formato .jpg aunque la imagen de entrada sea un .png, esto puede ser un problema si la imagen original tiene transparencias.

Deja un comentario