Use argparse for grayscale.py.
This commit is contained in:
parent
058dbbffc0
commit
58e5097639
1 changed files with 31 additions and 10 deletions
39
grayscale.py
39
grayscale.py
|
@ -1,3 +1,4 @@
|
||||||
|
import argparse
|
||||||
import PIL.Image
|
import PIL.Image
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -5,17 +6,37 @@ from voussoirkit import pathclass
|
||||||
from voussoirkit import pipeable
|
from voussoirkit import pipeable
|
||||||
from voussoirkit import winglob
|
from voussoirkit import winglob
|
||||||
|
|
||||||
def main(argv):
|
def grayscale(filename, *, inplace=False):
|
||||||
for pattern in pipeable.go(argv, strip=True, skip_blank=True):
|
|
||||||
filenames = winglob.glob(pattern)
|
|
||||||
for filename in filenames:
|
|
||||||
filename = pathclass.Path(filename)
|
filename = pathclass.Path(filename)
|
||||||
if filename.replace_extension('').basename.endswith('_gray'):
|
|
||||||
continue
|
basename = filename.replace_extension('').basename
|
||||||
new_filename = filename.replace_extension('').absolute_path + '_gray' + filename.dot_extension
|
if basename.endswith('_gray'):
|
||||||
print(f'{filename.basename} -> {new_filename.basename}')
|
return
|
||||||
|
|
||||||
|
if inplace:
|
||||||
|
new_filename = filename
|
||||||
|
else:
|
||||||
|
basename += '_gray'
|
||||||
|
new_filename = filename.parent.with_child(basename).add_extension(filename.extension)
|
||||||
|
|
||||||
image = PIL.Image.open(filename.absolute_path).convert('LA')
|
image = PIL.Image.open(filename.absolute_path).convert('LA')
|
||||||
image.save(new_filename)
|
print(f'{new_filename.relative_path}')
|
||||||
|
image.save(new_filename.absolute_path)
|
||||||
|
|
||||||
|
def grayscale_argparse(args):
|
||||||
|
filenames = winglob.glob(args.pattern)
|
||||||
|
for filename in filenames:
|
||||||
|
return grayscale(filename, inplace=args.inplace)
|
||||||
|
|
||||||
|
def main(argv):
|
||||||
|
parser = argparse.ArgumentParser(description=__doc__)
|
||||||
|
|
||||||
|
parser.add_argument('pattern')
|
||||||
|
parser.add_argument('--inplace', dest='inplace', action='store_true')
|
||||||
|
parser.set_defaults(func=grayscale_argparse)
|
||||||
|
|
||||||
|
args = parser.parse_args(argv)
|
||||||
|
return args.func(args)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
raise SystemExit(main(sys.argv[1:]))
|
raise SystemExit(main(sys.argv[1:]))
|
||||||
|
|
Loading…
Reference in a new issue