Do not alter pixels outside mask when drawing text on an image with transparency #5434
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 #5431
The issue reports that drawing text onto an RGBA image, and then removing the transparency by converting that image to L, a rectangle around the text has been affected by the draw operation. Testing, this was not the case before #4566.
Why is this the case?
When drawing text onto an image, a mask is used.
#4566 changed how the mask was blended into an image so that if the image was transparent, it's RGB values were not considered - so that black transparent pixels do not combine with white opaque text to give gray pixels. Comparing the output of the test from that PR,
However, it turns out that this was applied too broadly, ignoring the RGB values the whole of the mask area - if the above results are converted to L,
It should only be applied to the parts where the mask is not zero.