From 149890f2eb2255813f18bd6021621856c161e0d0 Mon Sep 17 00:00:00 2001 From: Sewon Ahn Date: Fri, 11 Dec 2020 21:30:24 +0900 Subject: [PATCH] Add rotate thumbnail --- deploy.sh | 2 +- distribusi/distribusi/distribusi.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/deploy.sh b/deploy.sh index 80e44c2..d90e964 100755 --- a/deploy.sh +++ b/deploy.sh @@ -36,4 +36,4 @@ echo "---> 'cp test_data/index.html data/'" cp test_data/index.html data/ echo "---> 'python distribusi/test.py -d ./data/'" -python distribusi/test.py -d ./data/ +python distribusi/test.py -t -d ./data/ diff --git a/distribusi/distribusi/distribusi.py b/distribusi/distribusi/distribusi.py index 7b27470..c149f3c 100644 --- a/distribusi/distribusi/distribusi.py +++ b/distribusi/distribusi/distribusi.py @@ -7,7 +7,7 @@ import subprocess from io import BytesIO import magic -from PIL import Image +from PIL import Image, ExifTags import markdown from distribusi.page_template import html_footer, html_head @@ -39,7 +39,19 @@ def thumbnail(image, name, args): try: size = (450, 450) im = Image.open(image) + + for orientation in ExifTags.TAGS.keys(): + if ExifTags.TAGS[orientation] == 'Orientation': + break + exif = im._getexif() im.thumbnail(size) + + if exif[orientation] == 3: + im = im.rotate(180, expand=True) + elif exif[orientation] == 6: + im = im.rotate(270, expand=True) + elif exif[orientation] == 8: + im = im.rotate(90, expand=True) if (im.mode == 'RGBA'): bg = Image.new('RGBA', im.size, (255,255,255))