Merge parallel horizontal edges in ImagingDrawPolygon #5347
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 #5235. Alternative to #5240
The issue reports missing pixels if a polygon is drawn with multiple horizontal lines in sequence, decreasing in x. This problem arises because, well,
draw_horizontal_lines
from #5183 loops through edges in order, working from left to right.This PR adds a solution in
ImagingDrawPolygon
- is the next edge to be added a horizontal line in the same direction as the last edge? If so, don't bother adding another edge, just extend the last one.Only the 'decreasing in x' case is necessary to fix the problem. However, since we're there, let's merge 'increasing in x' lines as well, to save a bit of memory.