mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| # Python Imaging Library
 | |
| # $Id$
 | |
| #
 | |
| # stuff to read simple, teragon-style palette files
 | |
| #
 | |
| # History:
 | |
| #       97-08-23 fl     Created
 | |
| #
 | |
| # Copyright (c) Secret Labs AB 1997.
 | |
| # Copyright (c) Fredrik Lundh 1997.
 | |
| #
 | |
| # See the README file for information on usage and redistribution.
 | |
| #
 | |
| 
 | |
| from PIL._binary import o8
 | |
| 
 | |
| ##
 | |
| # File handler for Teragon-style palette files.
 | |
| 
 | |
| class PaletteFile:
 | |
| 
 | |
|     rawmode = "RGB"
 | |
| 
 | |
|     def __init__(self, fp):
 | |
| 
 | |
|         self.palette = [(i, i, i) for i in range(256)]
 | |
| 
 | |
|         while True:
 | |
| 
 | |
|             s = fp.readline()
 | |
| 
 | |
|             if not s:
 | |
|                 break
 | |
|             if s[0:1] == b"#":
 | |
|                 continue
 | |
|             if len(s) > 100:
 | |
|                 raise SyntaxError("bad palette file")
 | |
| 
 | |
|             v = [int(x) for x in s.split()]
 | |
|             try:
 | |
|                 [i, r, g, b] = v
 | |
|             except ValueError:
 | |
|                 [i, r] = v
 | |
|                 g = b = r
 | |
| 
 | |
|             if 0 <= i <= 255:
 | |
|                 self.palette[i] = o8(r) + o8(g) + o8(b)
 | |
| 
 | |
|         self.palette = b"".join(self.palette)
 | |
| 
 | |
| 
 | |
|     def getpalette(self):
 | |
| 
 | |
|         return self.palette, self.rawmode
 |