Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何通过命令行向图像添加水印-希望使用Irfanview_Image Processing_Command Line_Watermark - Fatal编程技术网

Image processing 如何通过命令行向图像添加水印-希望使用Irfanview

Image processing 如何通过命令行向图像添加水印-希望使用Irfanview,image-processing,command-line,watermark,Image Processing,Command Line,Watermark,我已经做了一些挖掘工作,但我还没有找到任何可行的方法来自动为我的1000多张图片添加水印。这在irfanview中可能吗??我所寻找的只是一些基本的透明文本覆盖在每个图像上。这可以使用命令行完成吗?是否可以进一步添加徽标水印 如果无法在该程序中执行此操作,您可以推荐其他程序而不是irfanview来执行此操作。我建议使用,它是开源的,对于在命令行上操作图像非常标准 使用图像进行水印处理非常简单 composite -dissolve 30% -gravity south watermark.jp

我已经做了一些挖掘工作,但我还没有找到任何可行的方法来自动为我的1000多张图片添加水印。这在irfanview中可能吗??我所寻找的只是一些基本的透明文本覆盖在每个图像上。这可以使用命令行完成吗?是否可以进一步添加徽标水印

如果无法在该程序中执行此操作,您可以推荐其他程序而不是irfanview来执行此操作。

我建议使用,它是开源的,对于在命令行上操作图像非常标准

使用图像进行水印处理非常简单

composite -dissolve 30% -gravity south watermark.jpg input-file.jpg output-file.jpg
有了文字,它就变了

以上述命令为例,对文件夹中的所有文件执行此操作的Bash命令如下:

for pic in *.jpg; do
    composite -dissolve 30% -gravity south watermark.jpg $pic ${pic//.jpg}-marked.jpg
done

有关ImageMagick水印的更多信息,请参阅。

这里是一个基于ImageMagick建议的快速python脚本

#!/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()
按如下方式运行:

./add_watermarks.py --root . --watermark copyright.jpg --exclude marketplace
为了创建水印,我刚刚在Word文档中创建了文本,然后对文本的小区域进行了屏幕截图,最后生成了一个copyright.jpg文件