image-processing - poner - marca de agua en fotos online
Cómo agregar marcas de agua a las imágenes a través de la línea de comando-Esperemos que con Irfanview (2)
Aquí hay un script de Python rápido basado en la sugerencia de ImageMagik.
#!/usr/bin/env python
# encoding: utf-8
import os
import argparse
def main():
parser = argparse.ArgumentParser(description=''Add watermarks to images in path'')
parser.add_argument(''--root'', help=''Root path for images'', required=True, type=str)
parser.add_argument(''--watermark'', help=''Path to watermark image'', required=True, type=str)
parser.add_argument(''--name'', help=''Name addition for watermark'', default="-watermark", type=str)
parser.add_argument(''--extension'', help=''Image extensions to look for'', default=".jpg", type=str)
parser.add_argument(''--exclude'', help=''Path content to exclude'', type=str)
args = parser.parse_args()
files_processed = 0
files_watermarked = 0
for dirName, subdirList, fileList in os.walk(args.root):
if args.exclude is not None and args.exclude in dirName:
continue
#print(''Walking directory: %s'' % dirName)
for fname in fileList:
files_processed += 1
#print('' Processing %s'' % os.path.join(dirName, fname))
if args.extension in fname and args.watermark not in fname and args.name not in fname:
ext = ''.''.join(os.path.basename(fname).split(''.'')[1:])
orig = os.path.join(dirName, fname)
new_name = os.path.join(dirName, ''%s.%s'' % (os.path.basename(fname).split(''.'')[0] + args.name, ext))
if not os.path.exists(new_name):
files_watermarked += 1
print('' Convert %s to %s'' % (orig, new_name))
os.system(''composite -dissolve 30%% -gravity SouthEast %s "%s" "%s"'' % (args.watermark, orig, new_name))
print("Files Processed: %s" % "{:,}".format(files_processed))
print("Files Watermarked: %s" % "{:,}".format(files_watermarked))
if __name__ == ''__main__'':
main()
Ejecútelo así:
./add_watermarks.py --root . --watermark copyright.jpg --exclude marketplace
Para crear la marca de agua, acabo de crear el texto en un documento de Word y luego hice una captura de pantalla del área pequeña del texto para terminar con un archivo de copyright.jpg.
He investigado un poco y no he podido encontrar ninguna forma factible de agregar marcas de agua automáticamente a mis más de 1000 imágenes. ¿Es esto posible con irfanview? Lo que estoy buscando es solo una superposición básica de texto transparente en cada imagen. ¿Se puede hacer esto usando la línea de comando? ¿Es posible ir un paso más allá y agregar una marca de agua del logotipo?
¿Puede recomendar otros programas en lugar de irfanview para hacer esto, si no es posible hacerlo en este programa?
Recomiendo usar ImageMagick , que es de código abierto y bastante estándar para manipular imágenes en la línea de comandos.
Las marcas de agua con una imagen son tan simples como
composite -dissolve 30% -gravity south watermark.jpg input-file.jpg output-file.jpg
Con el texto, es un poco más complicado pero posible .
Usando el comando anterior como ejemplo, un comando Bash para hacer esto a todos los archivos en la carpeta sería:
for pic in *.jpg; do
composite -dissolve 30% -gravity south watermark.jpg $pic ${pic//.jpg}-marked.jpg
done
Para obtener más información acerca de la marca de agua con ImageMagick, consulte los ejemplos de ImageMagick v6 .