-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathimages_add_overlay_multiple.py
54 lines (42 loc) · 2.1 KB
/
images_add_overlay_multiple.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import os
import subprocess
import argparse
def call_overlay_script(input_folder, overlay_folder, base_output_folder, num_images, threads, prefix):
overlay_images = [f for f in os.listdir(overlay_folder) if f.lower().endswith(('png', 'jpg', 'jpeg'))]
for overlay_image in overlay_images:
overlay_image_path = os.path.join(overlay_folder, overlay_image)
output_folder = os.path.join(base_output_folder, os.path.splitext(overlay_image)[0])
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# Construct the command to call overlay_images.py
command = [
'python', 'images_add_overlay.py',
'--input_folder', input_folder,
'--output_folder', output_folder,
'--overlay_image', overlay_image_path,
'--threads', str(threads),
'--num_images', str(num_images)
#,'--prefix', prefix
]
print(f"Executing command: {' '.join(command)}")
subprocess.run(command)
def main():
parser = argparse.ArgumentParser(description="Call overlay_images.py script for each overlay image in a folder.")
parser.add_argument('--input_folder', required=True, help="Folder with images to edit.")
parser.add_argument('--overlay_folder', required=True, help="Folder with overlay images.")
parser.add_argument('--base_output_folder', required=True, help="Base folder to save edited images.")
parser.add_argument('--num_images', type=int, default=0,
help="Number of random images to process (0 means all images).")
parser.add_argument('--threads', type=int, default=4, help="Number of threads to use.")
parser.add_argument('--prefix', type=str, default="", help="Prefix to add to output images and associated files.")
args = parser.parse_args()
call_overlay_script(
input_folder=args.input_folder,
overlay_folder=args.overlay_folder,
base_output_folder=args.base_output_folder,
num_images=args.num_images,
threads=args.threads,
prefix=args.prefix
)
if __name__ == "__main__":
main()