mirror of
https://github.com/beetbox/beets.git
synced 2025-12-29 12:02:44 +01:00
Squashed from the PR, relevant commit messages follow below: Added file size option to artresizer - In line with comments on PR, adjusted the ArtResizer API to add functionality to "resize to X bytes" through `max_filesize` arg - Adjustment to changelog.rst to include max_filesize change to ArtResizer and addition of new plugin. Added explicit tests for PIL & Imagemagick Methods - Checks new resizing functions do reduce the filesize of images Expose max_filesize logic to fetchart plugin - Add syspath escaping for OS cross compatibility - Return smaller PIL image even if max filesize not reached. - Test resize logic against known smaller filesize (//2) - Pass integer (not float) quality argument to PIL - Remove Pillow from dependencies - Implement "max_filesize" fetchart option, including logic to resize and rescale if maxwidth is also set. Added tests & documentation for fetchart additions. Tests now check that a target filesize is reached with a higher initial quality (a difficult check to pass). With a starting quality of 95% PIL takes 4 iterations to succeed in lowering the example cover image to 90% its original size. To cover all bases, the PIL loop has been changed to 5 iterations in the worst case, and the documentation altered to reflect the 50% loss in quality this implies. This seems reasonable as users concerned about performance would most likely be persuaded to install ImageMagick, or remove the maximum filesize constraint. The previous 30% figure was arbitrary. |
||
|---|---|---|
| .. | ||
| bpd | ||
| lastgenre | ||
| metasync | ||
| web | ||
| __init__.py | ||
| absubmit.py | ||
| acousticbrainz.py | ||
| badfiles.py | ||
| beatport.py | ||
| bench.py | ||
| bpm.py | ||
| bpsync.py | ||
| bucket.py | ||
| chroma.py | ||
| convert.py | ||
| cue.py | ||
| deezer.py | ||
| discogs.py | ||
| duplicates.py | ||
| edit.py | ||
| embedart.py | ||
| embyupdate.py | ||
| export.py | ||
| fetchart.py | ||
| filefilter.py | ||
| fish.py | ||
| freedesktop.py | ||
| fromfilename.py | ||
| ftintitle.py | ||
| fuzzy.py | ||
| gmusic.py | ||
| hook.py | ||
| ihate.py | ||
| importadded.py | ||
| importfeeds.py | ||
| info.py | ||
| inline.py | ||
| ipfs.py | ||
| keyfinder.py | ||
| kodiupdate.py | ||
| lastimport.py | ||
| loadext.py | ||
| lyrics.py | ||
| mbcollection.py | ||
| mbsubmit.py | ||
| mbsync.py | ||
| missing.py | ||
| mpdstats.py | ||
| mpdupdate.py | ||
| parentwork.py | ||
| permissions.py | ||
| play.py | ||
| playlist.py | ||
| plexupdate.py | ||
| random.py | ||
| replaygain.py | ||
| rewrite.py | ||
| scrub.py | ||
| smartplaylist.py | ||
| sonosupdate.py | ||
| spotify.py | ||
| subsonicplaylist.py | ||
| subsonicupdate.py | ||
| the.py | ||
| thumbnails.py | ||
| types.py | ||
| unimported.py | ||
| zero.py | ||