mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-30 23:47:27 +03:00 
			
		
		
		
	
						commit
						4d74b81a15
					
				|  | @ -149,6 +149,7 @@ OPEN_INFO = { | |||
|     (II, 0, 1, 2, (8,), ()): ("L", "L;IR"), | ||||
|     (II, 0, 3, 1, (32,), ()): ("F", "F;32F"), | ||||
|     (II, 1, 1, 1, (1,), ()): ("1", "1"), | ||||
|     (II, 1, 1, 1, (4,), ()): ("L", "L;4"), | ||||
|     (II, 1, 1, 2, (1,), ()): ("1", "1;R"), | ||||
|     (II, 1, 1, 1, (8,), ()): ("L", "L"), | ||||
|     (II, 1, 1, 1, (8, 8), (2,)): ("LA", "LA"), | ||||
|  | @ -449,10 +450,10 @@ class ImageFileDirectory(collections.MutableMapping): | |||
|             if size > 4: | ||||
|                 here = fp.tell() | ||||
|                 if Image.DEBUG: | ||||
|                     print ("Tag Location: %s" %here) | ||||
|                     print("Tag Location: %s" % here) | ||||
|                 fp.seek(i32(ifd, 8)) | ||||
|                 if Image.DEBUG: | ||||
|                     print ("Data Location: %s" %fp.tell()) | ||||
|                     print("Data Location: %s" % fp.tell()) | ||||
|                 data = ImageFile._safe_read(fp, size) | ||||
|                 fp.seek(here) | ||||
|             else: | ||||
|  | @ -659,14 +660,14 @@ class TiffImageFile(ImageFile.ImageFile): | |||
|             if not self.__next: | ||||
|                 raise EOFError("no more images in TIFF file") | ||||
|             if Image.DEBUG: | ||||
|                 print("Seeking to frame %s, on frame %s, __next %s, location: %s"% | ||||
|                 print("Seeking to frame %s, on frame %s, __next %s, location: %s" % | ||||
|                       (frame, self.__frame, self.__next, self.fp.tell())) | ||||
|             # reset python3 buffered io handle in case fp | ||||
|             # was passed to libtiff, invalidating the buffer | ||||
|             self.fp.tell() | ||||
|             self.fp.seek(self.__next) | ||||
|             if Image.DEBUG: | ||||
|                 print("Loading tags, location: %s"%self.fp.tell()) | ||||
|                 print("Loading tags, location: %s" % self.fp.tell()) | ||||
|             self.tag.load(self.fp) | ||||
|             self.__next = self.tag.next | ||||
|             self.__frame += 1 | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								Tests/images/hopper_gray_4bpp.tif
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Tests/images/hopper_gray_4bpp.tif
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -342,6 +342,24 @@ class TestFileLibTiff(LibTiffTestCase): | |||
|         im.load() | ||||
|         self.assertFalse(im.tag.next) | ||||
| 
 | ||||
|     def test_4bit(self): | ||||
|         # Arrange | ||||
|         test_file = "Tests/images/hopper_gray_4bpp.tif" | ||||
|         original = hopper("L") | ||||
| 
 | ||||
|         # Act | ||||
|         TiffImagePlugin.READ_LIBTIFF = True | ||||
|         im = Image.open(test_file) | ||||
|         TiffImagePlugin.READ_LIBTIFF = False | ||||
| 
 | ||||
|         # Assert | ||||
|         self.assertEqual(im.size, (128, 128)) | ||||
|         self.assertEqual(im.mode, "L") | ||||
|         self.assert_image_similar(im, original, 7.3) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == '__main__': | ||||
|     unittest.main() | ||||
| 
 | ||||
|  |  | |||
|  | @ -144,28 +144,27 @@ class TestFileTiff(PillowTestCase): | |||
|     def test_multipage(self): | ||||
|         # issue #862 | ||||
|         im = Image.open('Tests/images/multipage.tiff') | ||||
|         # file is a multipage tiff,  10x10 green, 10x10 red, 20x20 blue | ||||
|         # file is a multipage tiff: 10x10 green, 10x10 red, 20x20 blue | ||||
| 
 | ||||
|         im.seek(0) | ||||
|         self.assertEqual(im.size, (10,10)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0,0)), (0,128,0)) | ||||
|         self.assertEqual(im.size, (10, 10)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0, 0)), (0, 128, 0)) | ||||
| 
 | ||||
|         im.seek(1) | ||||
|         im.load() | ||||
|         self.assertEqual(im.size, (10,10)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0,0)), (255,0,0)) | ||||
|         self.assertEqual(im.size, (10, 10)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0, 0)), (255, 0, 0)) | ||||
| 
 | ||||
|         im.seek(2) | ||||
|         im.load() | ||||
|         self.assertEqual(im.size, (20,20)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0,0)), (0,0,255)) | ||||
|         self.assertEqual(im.size, (20, 20)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0, 0)), (0, 0, 255)) | ||||
| 
 | ||||
|     def test_multipage_last_frame(self): | ||||
|         im = Image.open('Tests/images/multipage-lastframe.tif') | ||||
|         im.load() | ||||
|         self.assertEqual(im.size, (20,20)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0,0)), (0,0,255)) | ||||
| 
 | ||||
|         self.assertEqual(im.size, (20, 20)) | ||||
|         self.assertEqual(im.convert('RGB').getpixel((0, 0)), (0, 0, 255)) | ||||
| 
 | ||||
|     def test___str__(self): | ||||
|         # Arrange | ||||
|  | @ -199,7 +198,6 @@ class TestFileTiff(PillowTestCase): | |||
| 
 | ||||
|     def test_load_byte(self): | ||||
|         # Arrange | ||||
|         from PIL import TiffImagePlugin | ||||
|         ifd = TiffImagePlugin.ImageFileDirectory() | ||||
|         data = b"abc" | ||||
| 
 | ||||
|  | @ -211,7 +209,6 @@ class TestFileTiff(PillowTestCase): | |||
| 
 | ||||
|     def test_load_string(self): | ||||
|         # Arrange | ||||
|         from PIL import TiffImagePlugin | ||||
|         ifd = TiffImagePlugin.ImageFileDirectory() | ||||
|         data = b"abc\0" | ||||
| 
 | ||||
|  | @ -223,7 +220,6 @@ class TestFileTiff(PillowTestCase): | |||
| 
 | ||||
|     def test_load_float(self): | ||||
|         # Arrange | ||||
|         from PIL import TiffImagePlugin | ||||
|         ifd = TiffImagePlugin.ImageFileDirectory() | ||||
|         data = b"abcdabcd" | ||||
| 
 | ||||
|  | @ -235,7 +231,6 @@ class TestFileTiff(PillowTestCase): | |||
| 
 | ||||
|     def test_load_double(self): | ||||
|         # Arrange | ||||
|         from PIL import TiffImagePlugin | ||||
|         ifd = TiffImagePlugin.ImageFileDirectory() | ||||
|         data = b"abcdefghabcdefgh" | ||||
| 
 | ||||
|  | @ -298,6 +293,19 @@ class TestFileTiff(PillowTestCase): | |||
|         # Assert | ||||
|         self.assertEqual(ret, [0, 1]) | ||||
| 
 | ||||
|     def test_4bit(self): | ||||
|         # Arrange | ||||
|         test_file = "Tests/images/hopper_gray_4bpp.tif" | ||||
|         original = hopper("L") | ||||
| 
 | ||||
|         # Act | ||||
|         im = Image.open(test_file) | ||||
| 
 | ||||
|         # Assert | ||||
|         self.assertEqual(im.size, (128, 128)) | ||||
|         self.assertEqual(im.mode, "L") | ||||
|         self.assert_image_similar(im, original, 7.3) | ||||
| 
 | ||||
| 
 | ||||
|     def test_page_number_x_0(self): | ||||
|         # Issue 973 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user