我已經完成了一些挖掘工作,而且我無法找到任何可行的方法來自動爲我的1000多幅圖像添加水印。這可能與irfanview?我在尋找的只是一些基本的透明文字,覆蓋每張圖片。這可以使用命令行來完成嗎?是否有可能更進一步並添加徽標水印?如何通過命令行爲圖像添加水印 - 希望使用Irfanview
如果在這個程序中無法做到這一點,你能推薦任何其他程序而不是irfanview來做到這一點嗎?
我已經完成了一些挖掘工作,而且我無法找到任何可行的方法來自動爲我的1000多幅圖像添加水印。這可能與irfanview?我在尋找的只是一些基本的透明文字,覆蓋每張圖片。這可以使用命令行來完成嗎?是否有可能更進一步並添加徽標水印?如何通過命令行爲圖像添加水印 - 希望使用Irfanview
如果在這個程序中無法做到這一點,你能推薦任何其他程序而不是irfanview來做到這一點嗎?
我推薦使用ImageMagick,它是開源的,在命令行上處理圖像非常標準。
與圖像水印很簡單,只要
composite -dissolve 30% -gravity south watermark.jpg input-file.jpg output-file.jpg
文字,這是a little more complicated but possible。
使用上述命令爲例,在文件夾中這樣做是爲了所有的文件將是一個bash命令:
for pic in *.jpg; do
composite -dissolve 30% -gravity south watermark.jpg $pic ${pic//.jpg}-marked.jpg
done
有關使用ImageMagick的水印的更多信息,請參閱ImageMagick v6 Examples。
這是一個基於ImageMagik建議的快速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文檔中的文本,然後做了文字的小面積的屏幕截圖與版權落得水印.jpg文件。