From eb5d6d84c36d419b990618e56e95c8e9d30b98f6 Mon Sep 17 00:00:00 2001 From: Joey Payne Date: Sat, 6 Feb 2016 08:49:53 -0700 Subject: [PATCH] Fixed issues with 256x256 images in exes. --- pe.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/pe.py b/pe.py index 1b7a36b..9be861b 100644 --- a/pe.py +++ b/pe.py @@ -7,12 +7,25 @@ from ico_plugin import * def resize(image, size, format=None): output = StringIO() back = Image.new('RGBA', size, (0,0,0,0)) - image.thumbnail(size, Image.ANTIALIAS) - offset = [0,0] - if image.size[0] >= image.size[1]: - offset[1] = back.size[1]/2-image.size[1]/2 + + if image.size[0] < size[0] or image.size[1] < size[1]: + if image.height > image.width: + factor = size[0] / image.height + else: + factor = size[1] / image.width + image = image.resize((int(image.width * factor), int(image.height * factor)), Image.ANTIALIAS) else: - offset[0] = back.size[0]/2-image.size[0]/2 + image.thumbnail(size, Image.ANTIALIAS) + + offset = [0, 0] + if image.size[0] > image.size[1]: + offset[1] = int(back.size[1]/2-image.size[1]/2) + elif image.size[0] < image.size[1]: + offset[0] = int(back.size[0]/2-image.size[0]/2) + else: + offset[0] = int(back.size[0]/2-image.size[0]/2) + offset[1] = int(back.size[1]/2-image.size[1]/2) + back.paste(image, tuple(offset)) format = format or image.format back.save(output, format)