-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfade_to_black.py
31 lines (24 loc) · 1.08 KB
/
fade_to_black.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
import argparse
import os
import shutil
from PIL import Image
import common
desc = 'Applies a fading-to-black animation to a subset of images in an image sequence'
parser = argparse.ArgumentParser(description=desc, epilog='')
parser.add_argument('folder', metavar='<folder>', type=str, help='Location of the frames')
parser.add_argument('start', metavar='<start>', type=int, help='Image index to start fade to black')
parser.add_argument('end', metavar='<end>', type=int, help='Image index to end fade to black (-1 for end)')
parser.add_argument('--dryrun', dest='dryrun', action='store_true')
parser.set_defaults(dryrun=False)
args = parser.parse_args()
files = common.load_files(args.folder)
for f in files:
if f.original_index < args.start or f.original_index > args.end:
continue
t = (f.original_index - files[args.start].original_index) / (files[args.end].original_index - files[args.start].original_index)
t_inv = 1.0 - t
print('Image {} * {}'.format(f.path, t_inv))
if not args.dryrun:
im = Image.open(f.path)
out = im.point(lambda i: i * t_inv)
out.save(f.path)