Handle unexpected ICO image sizes #3836
Merged
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.
Resolves #3834
The issue has an ICO file that says that it is 32x64. However, once the image is loaded, it is found to only be 32x32. This PR stops Pillow from raising
ValueError: This is not one of the allowed sizes of this image
. Instead, the new size is accepted, and the size of the subimage is updated ininfo['sizes']
. To alert the user to this unexpected behaviour, a warning is raised, 'Image was not the expected size'.The idea of updating to the loaded image size actually already exists in the code -
Pillow/src/PIL/IcoImagePlugin.py
Line 285 in 0e36b28