|
@ -8,14 +8,30 @@ |
|
|
import Image |
|
|
import Image |
|
|
import glob |
|
|
import glob |
|
|
|
|
|
|
|
|
width = 128 |
|
|
|
|
|
height = 128 |
|
|
|
|
|
|
|
|
|
|
|
# Process song files |
|
|
# Process song files |
|
|
covers = glob.glob('songs/*/*.jpg') |
|
|
covers = glob.glob('songs/*/*.jpg') |
|
|
for filename in covers: |
|
|
for filename in covers: |
|
|
|
|
|
|
|
|
source = Image.open(filename) |
|
|
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 = source.resize((width, height), Image.ANTIALIAS) |
|
|
target.save(filename) |
|
|
target.save(filename) |
|
|