From 7a79b8365e32d7f25bb33532bce4b0014bad8600 Mon Sep 17 00:00:00 2001 From: Romain Goffe Date: Mon, 30 Apr 2012 22:05:05 +0200 Subject: [PATCH] preserve high width/height ratios for covers --- utils/resize-cover.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/utils/resize-cover.py b/utils/resize-cover.py index 975c2386..c7f9daf3 100755 --- a/utils/resize-cover.py +++ b/utils/resize-cover.py @@ -8,14 +8,30 @@ import Image import glob -width = 128 -height = 128 - # Process song files covers = glob.glob('songs/*/*.jpg') for filename in covers: + source = Image.open(filename) - if source.size > (128, 128): - print "resizing : " + filename + + src_width = source.size[0] + src_height = source.size[1] + ratio = float(src_height) / float(src_width) + + width = 128 + height = 128 + error = 0.2 #0: always preserve ratio; 1: always square images + + #tolerate almost square images + if ratio < 1 - error or ratio > 1 + error: + #print "preserve ratio = ", ratio + #preserve important ratio + if src_width < src_height: + height = int(width * ratio) + elif src_height < src_width: + width = int(height * ratio) + + if src_width > width and src_height > height: + print "resize: ", filename, " from ", source.size, " to ", (width, height) target = source.resize((width, height), Image.ANTIALIAS) target.save(filename)