Hoy en día es realmente común ver imágenes de galerías o de blogs con marcas de agua incluidas con el fin de que dichas imágenes no puedan ser redistribuidas, a menos que, en algunos casos, pagues por el derecho de usarlas sin marca alguna, cosa común en algunas webs dedicadas a la distribución de imágenes. El proceso de generación e incrustación de marcas de agua puede que a primera vista a uno le pueda parecer complejo o que sea tarea de una persona con conocimientos de maquetación o diseño gráfico; pero en realidad es mucho más sencillo de lo que parece, o al menos lo es en GNU/Linux. Esto es gracias a una herramienta de manipulación de imágenes muy potente y conocida llamada Imagemagick.
Imagemagick es un conjunto de utilidades basadas en la terminal que es capaz de mostrar, manipular y convertir imágenes de multitud de formatos, lo hace de ella una utilidad muy versátil y conocida. Dicha herramienta, dependiendo de la distribución que estemos usando no estará instalada por defecto, pero al estar dentro de los repositorios oficiales, es increíblemente sencilla de instalar, pues solamente habría que hacer:
apt-get install imagemagick
Con esto realizado, lo primero que crearíamos sería nuestra marca de agua particular, la cual en nuestro caso sería basada en texto y que sería la que usaríamos para incrustarla a nuestras futuras imágenes. En mi caso particular la marca de agua en sí se llamaría Marca_bytelearning.png pondría bytelearning, pero se podría poner cualquier otro nombre y texto. Para la creación de la marca de agua en sí, solamente requeriríamos de un comando:
Este comando crearía una marca de agua blanca con bordes oscuros; en concreto dicha marca tendría el siguiente aspecto:
convert -size 400x200 xc:none -pointsize 25 -kerning 1 \ -gravity center -fill black \ -annotate 330x330+0+0 "Bytelearning" -fill white \ -annotate 330x330+2+2 "Bytelearning" Marca_bytelearning.png
Este comando crearía una marca de agua blanca con bordes oscuros; en concreto dicha marca tendría el siguiente aspecto:
Marca de agua
Obviamente dicha marcha de agua tendría que ser incrustada en una imagen a nuestra elección y además tendría que tener una pequeña degradación para que la marca de agua sea semi-transparente en la imagen en la que queramos añadir nuestra marca. Esto se logra gracias al comando composite, que tendría la estructura de a continuación:
composite -disolve 20% -tile marca_de_agua imagen_original nombre_imagen_con_marca
Por ejemplo, si nuestra imagen se llamase prueba_marca.png, el comando podría ser:
Lo cual daría como resultado una imagen como la siguiente:
Si tuviésemos la costumbre de incrustar marcas de agua de manera recurrente, si bien el comando es relativamente sencillo, podemos simplificarlo todo en un script que hará que todo resulte mucho más sencillo. Un script como el siguiente, al que podríamos llamar incrustador_marca.sh:
Con esto haríamos que todo el proceso fuese automático, exigiendo a cualquier persona que use el script el mínimo esfuerzo, ya que solamente habría que indicarle la imagen a la que queremos incrustarle la marca.
Gracias a esto, tendríamos un incrustador automatizado y cualquier marca que queramos poner en nuestras imágenes se haría de forma rápida e intuitiva.
Espero que os haya resultado útil.
Saludos.
composite -disolve 20% -tile marca_de_agua imagen_original nombre_imagen_con_marca
Por ejemplo, si nuestra imagen se llamase prueba_marca.png, el comando podría ser:
composite -dissolve 20% -tile Marca_bytelearning.png \ prueba_marca.png prueba_marca_MARCADO.png
Lo cual daría como resultado una imagen como la siguiente:
Si tuviésemos la costumbre de incrustar marcas de agua de manera recurrente, si bien el comando es relativamente sencillo, podemos simplificarlo todo en un script que hará que todo resulte mucho más sencillo. Un script como el siguiente, al que podríamos llamar incrustador_marca.sh:
#!/bin/bash #VARIABLES COLORES VERDE='\e[0;32m' #Verde ROJO='\e[0;31m' #Rojo NC='\e[0m' # No Color #COMPROBAMOS LA CANTIDAD DE ARGUMENTOS if [[ $# -ne 1 ]]; then echo -e "${ROJO}SOLAMENTE HAY QUE INTRODUCIR UN ARGUMENTO${NC}" exit fi #PREPARAMOS LOS COMPONENTES IMAGEN_ORIGINAL=$1 IMAGEN_MARCADA=$(echo "${IMAGEN_ORIGINAL}" |cut -d '.' -f 1)"_MARCADA.png" MARCA_AGUA=/tmp/Marca_bytelearning.png #EJECUTAMOS EL COMANDO composite -dissolve 20% -tile ${MARCA_AGUA} ${IMAGEN_ORIGINAL} ${IMAGEN_MARCADA}\ > /dev/null 2>&1 #INFORMA DEL RESULTADO DEL COMANDO if [[ $? -ne 0 ]]; then echo -e "${ROJO}La incrustacion de la marcha ha sido FALLIDA" \ "revise la imagen original: ${NC}${IMAGEN_ORIGINAL}" else echo -e "${VERDE}La incrustacion de la marca ha sido EXITOSA," \ "revise la nueva imagen: ${NC}${IMAGEN_MARCADA}" fi
Con esto haríamos que todo el proceso fuese automático, exigiendo a cualquier persona que use el script el mínimo esfuerzo, ya que solamente habría que indicarle la imagen a la que queremos incrustarle la marca.
Gracias a esto, tendríamos un incrustador automatizado y cualquier marca que queramos poner en nuestras imágenes se haría de forma rápida e intuitiva.
Espero que os haya resultado útil.
Saludos.
Hola Buenas tardes,excelente lo que estas haciendo aqui compartiendo conocimiento.
ResponderEliminartengo una duda este marca de agua me sirve para adjuntarlo con una impresion si es asi como puedo agregar el scritp para que me salga con la marca de agua centrado.saludos!