mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-30 23:47:27 +03:00 
			
		
		
		
	Fix tga files with image ID field
This commit is contained in:
		
							parent
							
								
									735d45b175
								
							
						
					
					
						commit
						1bd4919a35
					
				|  | @ -19,6 +19,7 @@ | |||
| 
 | ||||
| __version__ = "0.3" | ||||
| 
 | ||||
| import os | ||||
| from PIL import Image, ImageFile, ImagePalette, _binary | ||||
| 
 | ||||
| 
 | ||||
|  | @ -42,9 +43,6 @@ MODES = { | |||
| } | ||||
| 
 | ||||
| 
 | ||||
| def _accept(prefix): | ||||
|     return prefix[0:1] == b"\0" | ||||
| 
 | ||||
| ## | ||||
| # Image plugin for Targa files. | ||||
| 
 | ||||
|  | @ -58,7 +56,7 @@ class TgaImageFile(ImageFile.ImageFile): | |||
|         # process header | ||||
|         s = self.fp.read(18) | ||||
| 
 | ||||
|         id = i8(s[0]) | ||||
|         idlen = i8(s[0]) | ||||
| 
 | ||||
|         colormaptype = i8(s[1]) | ||||
|         imagetype = i8(s[2]) | ||||
|  | @ -70,7 +68,7 @@ class TgaImageFile(ImageFile.ImageFile): | |||
|         self.size = i16(s[12:]), i16(s[14:]) | ||||
| 
 | ||||
|         # validate header fields | ||||
|         if id != 0 or colormaptype not in (0, 1) or\ | ||||
|         if colormaptype not in (0, 1) or\ | ||||
|            self.size[0] <= 0 or self.size[1] <= 0 or\ | ||||
|            depth not in (1, 8, 16, 24, 32): | ||||
|             raise SyntaxError("not a TGA file") | ||||
|  | @ -103,6 +101,9 @@ class TgaImageFile(ImageFile.ImageFile): | |||
|         if imagetype & 8: | ||||
|             self.info["compression"] = "tga_rle" | ||||
| 
 | ||||
|         if idlen: | ||||
|             self.fp.seek(idlen, os.SEEK_CUR) | ||||
| 
 | ||||
|         if colormaptype: | ||||
|             # read palette | ||||
|             start, size, mapdepth = i16(s[3:]), i16(s[5:]), i16(s[7:]) | ||||
|  | @ -191,7 +192,7 @@ def _save(im, fp, filename, check=0): | |||
| # -------------------------------------------------------------------- | ||||
| # Registry | ||||
| 
 | ||||
| Image.register_open("TGA", TgaImageFile, _accept) | ||||
| Image.register_open("TGA", TgaImageFile) | ||||
| Image.register_save("TGA", _save) | ||||
| 
 | ||||
| Image.register_extension("TGA", ".tga") | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user