#20 Bugfix: Resize the cover image (max allow: 640x640, same as 163), thus can reduce the file size.
This commit is contained in:
parent
1adf7db7c6
commit
67840eae8c
|
@ -7,6 +7,7 @@ import requests
|
|||
from ncm import config
|
||||
from ncm.api import CloudApi
|
||||
from ncm.file_util import add_metadata_to_song
|
||||
from ncm.file_util import resize_img
|
||||
|
||||
|
||||
def download_song_by_id(song_id, download_folder, sub_folder=True):
|
||||
|
@ -59,6 +60,9 @@ def download_song_by_song(song, download_folder, sub_folder=True):
|
|||
cover_file_name = 'cover_{}.jpg'.format(song_id)
|
||||
download_file(cover_url, cover_file_name, song_download_folder)
|
||||
|
||||
# resize cover
|
||||
resize_img(os.path.join(song_download_folder, cover_file_name))
|
||||
|
||||
# add metadata for song
|
||||
song_file_path = os.path.join(song_download_folder, song_file_name)
|
||||
cover_file_path = os.path.join(song_download_folder, cover_file_name)
|
||||
|
|
|
@ -2,6 +2,19 @@
|
|||
|
||||
from mutagen.mp3 import MP3, HeaderNotFoundError
|
||||
from mutagen.id3 import ID3, APIC, TPE1, TIT2, TALB, error
|
||||
from PIL import Image
|
||||
|
||||
|
||||
def resize_img(file_path, max_size=(640, 640), quality=90):
|
||||
try:
|
||||
img = Image.open(file_path)
|
||||
except IOError:
|
||||
print('Can\'t open image:', file_path)
|
||||
return
|
||||
|
||||
if img.size[0] > max_size[0] or img.size[1] > max_size[1]:
|
||||
img.thumbnail(max_size, Image.ANTIALIAS)
|
||||
img.save(file_path, quality=quality)
|
||||
|
||||
|
||||
def add_metadata_to_song(file_path, cover_path, song):
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
requests>=2.17.3
|
||||
pycrypto>=2.6.1
|
||||
mutagen>=1.38.0
|
||||
Pillow>=4.3.0
|
Loading…
Reference in New Issue