mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 18:07:51 +03:00 
			
		
		
		
	Read EXIF data tEXt chunk into info as bytes instead of string
This commit is contained in:
		
							parent
							
								
									48c7d84bf7
								
							
						
					
					
						commit
						5da1a8adcf
					
				
							
								
								
									
										
											BIN
										
									
								
								Tests/images/exif_text.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Tests/images/exif_text.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 174 KiB  | 
| 
						 | 
					@ -606,6 +606,11 @@ class TestFilePng:
 | 
				
			||||||
            exif = im.copy().getexif()
 | 
					            exif = im.copy().getexif()
 | 
				
			||||||
            assert exif[274] == 1
 | 
					            assert exif[274] == 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # With a tEXt chunk
 | 
				
			||||||
 | 
					        with Image.open("Tests/images/exif_text.png") as im:
 | 
				
			||||||
 | 
					            exif = im._getexif()
 | 
				
			||||||
 | 
					        assert exif[274] == 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # With XMP tags
 | 
					        # With XMP tags
 | 
				
			||||||
        with Image.open("Tests/images/xmp_tags_orientation.png") as im:
 | 
					        with Image.open("Tests/images/xmp_tags_orientation.png") as im:
 | 
				
			||||||
            exif = im.getexif()
 | 
					            exif = im.getexif()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -509,10 +509,11 @@ class PngStream(ChunkStream):
 | 
				
			||||||
            v = b""
 | 
					            v = b""
 | 
				
			||||||
        if k:
 | 
					        if k:
 | 
				
			||||||
            k = k.decode("latin-1", "strict")
 | 
					            k = k.decode("latin-1", "strict")
 | 
				
			||||||
            v = v.decode("latin-1", "replace")
 | 
					            v_str = v.decode("latin-1", "replace")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            self.im_info[k] = self.im_text[k] = v
 | 
					            self.im_info[k] = v if k == "exif" else v_str
 | 
				
			||||||
            self.check_text_memory(len(v))
 | 
					            self.im_text[k] = v_str
 | 
				
			||||||
 | 
					            self.check_text_memory(len(v_str))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return s
 | 
					        return s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user