Browse Source

preserve high width/height ratios for covers

remotes/karagrat/master
Romain Goffe 12 years ago
parent
commit
365127c20f
  1. BIN
      songs/Jonathan_Coulton/portal.jpg
  2. BIN
      songs/Le_Donjon_de_Naheulbeuk/grimoire-audio.jpg
  3. BIN
      songs/Le_Donjon_de_Naheulbeuk/t-as-pas-le-niveau.jpg
  4. 26
      utils/resize-cover.py

BIN
songs/Jonathan_Coulton/portal.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
songs/Le_Donjon_de_Naheulbeuk/grimoire-audio.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
songs/Le_Donjon_de_Naheulbeuk/t-as-pas-le-niveau.jpg

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

26
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)

Loading…
Cancel
Save