Do not attempt normalization if mode is already normal #6644
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.
While investigating #6643, I found that
It looks odd that "ValueError: conversion from RGB to XYZ not supported" is raised twice. One would expect the first time to be enough.
This is because of the following code. The intention is that if A -> B isn't supported, then maybe A -> C -> B will work, using the base mode as the intermediary.
Pillow/src/PIL/Image.py
Lines 1034 to 1040 in 243402e
But in this case, since
getmodebase(self.mode)
doesn't change the mode, it becomes A -> A -> B, and fails with the same error again.This PR modifies that code so that if
getmodebase(self.mode)
doesn't change the mode, then this alternative conversion path is not attempted.