2011-04-04 31 views
15

का उपयोग करके मैंने थोड़ा खुदाई की है और मैं अपने 1000+ छवियों में स्वचालित रूप से वॉटरमार्क जोड़ने का कोई व्यवहार्य तरीका नहीं ढूंढ पा रहा हूं। क्या यह इरफानव्यू के साथ संभव है ?? मैं जो खोज रहा हूं वह प्रत्येक छवि में कुछ बुनियादी पारदर्शी पाठ ओवरलेइंग है। क्या यह कमांड लाइन का उपयोग करके किया जा सकता है? क्या एक कदम आगे जाना और लोगो वॉटरमार्क जोड़ना संभव है?कमांड लाइन के माध्यम से छवियों में वॉटरमार्क जोड़ने के लिए - उम्मीद है कि इरफानव्यू

यदि आप इस कार्यक्रम में ऐसा करना संभव नहीं है, तो ऐसा करने के लिए इरफानव्यू के बजाय आप किसी अन्य प्रोग्राम की अनुशंसा कर सकते हैं।

उत्तर

24

मैं ImageMagick का उपयोग करने की सलाह देता हूं, जो ओपन सोर्स और कमांड लाइन पर छवियों में हेरफेर करने के लिए काफी मानक है।

एक छवि के साथ वॉटरमार्किंग के रूप में सरल रूप में

composite -dissolve 30% -gravity south watermark.jpg input-file.jpg output-file.jpg 
पाठ के साथ

, यह a little more complicated but possible है।

एक उदाहरण है, फ़ोल्डर में सभी फ़ाइलें करने के लिए यह कर रहा होगा के लिए एक बैश आदेश के रूप में उपरोक्त आदेश का उपयोग करना:

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

ImageMagick साथ watermarking के बारे में अधिक जानकारी के लिए, ImageMagick v6 Examples देखते हैं।

0

इमेजमैजिक सुझाव के आधार पर यहां एक त्वरित पायथन लिपि है।

#!/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 

वॉटरमार्क मैं अभी बनाया एक वर्ड दस्तावेज़ में पाठ तो एक कॉपीराइट के साथ अंत करने के लिए पाठ के छोटे से क्षेत्र का एक स्क्रीन शॉट किया था बनाने के लिए .jpg फ़ाइल।