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.
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
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.