Skip to content

Instantly share code, notes, and snippets.

@mertsalik
Last active September 26, 2016 14:26
Show Gist options
  • Save mertsalik/77f089affedd1dba9a4a2a9018030078 to your computer and use it in GitHub Desktop.
Save mertsalik/77f089affedd1dba9a4a2a9018030078 to your computer and use it in GitHub Desktop.
from PIL import Image
import os
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description='Make biggest centered square of images in given directory')
parser.add_argument('--dir',
help='Project directory for search image files',
required=True)
parser.add_argument('--out',
help="output folder name for squared images",
required=True)
args = parser.parse_args()
try:
os.mkdir(args.out)
except OSError as oserr:
# already exists
if oserr.errno == 17:
pass
else:
raise oserr
for root, subdirs, files in os.walk(args.dir):
for filename in files:
img = Image.open(open(os.path.join(root, filename)))
width, height = img.size
if width > height:
delta = width - height
left = int(delta / 2)
upper = 0
right = height + left
lower = height
else:
delta = height - width
left = 0
upper = int(delta / 2)
right = width
lower = width + upper
img = img.crop((left, upper, right, lower))
img.save(
os.path.join(args.out, filename.replace(".", "_squared.")))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment