mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-03 21:24:31 +03:00
Merge pull request #6278 from radarhere/polygon
Fixed drawing translucent 1px high polygons
This commit is contained in:
commit
38931c1e47
BIN
Tests/images/imagedraw_polygon_1px_high_translucent.png
Normal file
BIN
Tests/images/imagedraw_polygon_1px_high_translucent.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 76 B |
|
@ -655,6 +655,20 @@ def test_polygon_1px_high():
|
|||
assert_image_equal_tofile(im, expected)
|
||||
|
||||
|
||||
def test_polygon_1px_high_translucent():
|
||||
# Test drawing a translucent 1px high polygon
|
||||
# Arrange
|
||||
im = Image.new("RGB", (4, 3))
|
||||
draw = ImageDraw.Draw(im, "RGBA")
|
||||
expected = "Tests/images/imagedraw_polygon_1px_high_translucent.png"
|
||||
|
||||
# Act
|
||||
draw.polygon([(1, 1), (1, 1), (3, 1), (3, 1)], (255, 0, 0, 127))
|
||||
|
||||
# Assert
|
||||
assert_image_equal_tofile(im, expected)
|
||||
|
||||
|
||||
def test_polygon_translucent():
|
||||
# Arrange
|
||||
im = Image.new("RGB", (W, H))
|
||||
|
|
|
@ -419,7 +419,7 @@ draw_horizontal_lines(
|
|||
if (e[i].ymin == y && e[i].ymin == e[i].ymax) {
|
||||
int xmax;
|
||||
int xmin = e[i].xmin;
|
||||
if (*x_pos < xmin) {
|
||||
if (*x_pos != -1 && *x_pos < xmin) {
|
||||
// Line would be after the current position
|
||||
continue;
|
||||
}
|
||||
|
@ -542,7 +542,7 @@ polygon_generic(Imaging im, int n, Edge *e, int ink, int eofill, hline_handler h
|
|||
}
|
||||
qsort(xx, j, sizeof(float), x_cmp);
|
||||
if (hasAlpha == 1) {
|
||||
int x_pos = 0;
|
||||
int x_pos = j == 0 ? -1 : 0;
|
||||
for (i = 1; i < j; i += 2) {
|
||||
int x_end = ROUND_DOWN(xx[i]);
|
||||
if (x_end < x_pos) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user