mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +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
 |