From 79590a402751361077bcfafa14db113cb719be82 Mon Sep 17 00:00:00 2001 From: clarkzjw Date: Thu, 17 Nov 2022 11:40:24 -0800 Subject: + add batch processing --- square.py | 45 +++++++++++++++++++++++++++++---------------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/square.py b/square.py index 903e939..6cf3b48 100755 --- a/square.py +++ b/square.py @@ -1,9 +1,10 @@ -import sys +import glob +import argparse from PIL import Image, ImageFilter -def insta_size_no_padding(img): +def square_size_no_padding(img): w, h = img.size new = Image.new(img.mode, (max(w, h), max(w, h)), (255, 255, 255)) if h >= w: @@ -13,7 +14,7 @@ def insta_size_no_padding(img): return new -def insta_size_padding(img): +def square_size_padding(img): w, h = img.size padding_percentage = 0.02 length = max(w, h) @@ -64,16 +65,28 @@ def drop_shadow(image, offset=(5, 5), background=0xffffff, shadow=0x444444, bord if __name__ == "__main__": - if len(sys.argv) <= 1: - exit(0) - for file in sys.argv[1:]: - names = file.split(".") - if len(names) != 2: - continue - try: - im = Image.open(file) - except Exception as e: - print(str(e)) - continue - result = insta_size_no_padding(drop_shadow(im, background=0xFAFAFA, shadow=0x444444, offset=(20, 20))) - result.save("{}-square-shadow.{}".format(names[0], names[1]), quality=100) + parser = argparse.ArgumentParser(description="Options") + parser.add_argument('--padding', action=argparse.BooleanOptionalAction) + + args = parser.parse_args() + + files = glob.glob("*") + for file in files: + if (file.endswith(".jpg") or file.endswith(".png")) \ + and (str.find(file, "result") == -1): + + names = file.split(".") + if len(names) != 2: + continue + try: + im = Image.open(file) + except Exception as e: + print(str(e)) + continue + + print("Processing {}".format(file)) + if args.padding is True: + result = square_size_padding(drop_shadow(im, background=0xFAFAFA, shadow=0x444444, offset=(20, 20))) + else: + result = square_size_no_padding(drop_shadow(im, background=0xFAFAFA, shadow=0x444444, offset=(20, 20))) + result.save("{}-result.{}".format(names[0], names[1]), quality=100) -- cgit v1.2.3