| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 | | # |  | # 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. |  | # |  |   |  | import string |  |   |  | ## |  | # File handler for Teragon-style palette files. |  |   |  | class PaletteFile: |  |   |  |     rawmode = "RGB" |  |   |  |     def __init__(self, fp): |  |   |  |         self.palette = map(lambda i: (i, i, i), range(256)) |  |   |  |         while 1: |  |   |  |             s = fp.readline() |  |   |  |             if not s: |  |                 break |  |             if s[0] == "#": |  |                 continue |  |             if len(s) > 100: |  |                 raise SyntaxError, "bad palette file" |  |   |  |             v = map(int, string.split(s)) |  |             try: |  |                 [i, r, g, b] = v |  |             except ValueError: |  |                 [i, r] = v |  |                 g = b = r |  |   |  |             if 0 <= i <= 255: |  |                 self.palette[i] = chr(r) + chr(g) + chr(b) |  |   |  |         self.palette = string.join(self.palette, "") |  |   |  |   |  |     def getpalette(self): |  |   |  |         return self.palette, self.rawmode | 
 |