Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There are two changes related to how
Image.thumbnail
works.JPEG draft decoding
Image.thumbnail
(or more preciseImage.draft
) instructs libJPEG to open image in draft mode. I don't know original motivation of libJPEG authors to add this mode. Looks like it gives very small performance win:Also it does't affect too much most of images, but for some images it introduces noticeable artifacts. For example this is cropped part of normal decoded image and draft. Source.
Docstring of
Image.draft()
method says:I believe what this is exactly what this method should do. But not decrease quality of image decoding even if decoder options named the same as this method.
Bicubic as default filter
In Pillow 2.5 default filter was changed from
NEAREST
toANTIALIAS
. Antialias was chosen because all other filters gave poor quality for reduction. Starting from Pillow 2.7 we can replaceANTIALIAS
withBICUBIC
, because bicubic is a bit faster andANTIALIAS
doesn't give any advantages if we first scales down image with libJPEG (which uses supersampling, not convolutions).