mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-30 23:47:27 +03:00 
			
		
		
		
	Fixed drawing translucent 1px high polygons
This commit is contained in:
		
							parent
							
								
									3fa89f09eb
								
							
						
					
					
						commit
						c824ab048f
					
				
							
								
								
									
										
											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; | ||||
|             } | ||||
|  | @ -540,7 +540,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