home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pypil112.zip / PIL-1.1.2.zip / Lib / site-packages / PIL / PaletteFile.py < prev    next >
Text File  |  2001-05-03  |  1KB  |  51 lines

  1. #
  2. # Python Imaging Library
  3. # $Id$
  4. #
  5. # stuff to read simple, teragon-style palette files
  6. #
  7. # History:
  8. #       97-08-23 fl     Created
  9. #
  10. # Copyright (c) Secret Labs AB 1997.
  11. # Copyright (c) Fredrik Lundh 1997.
  12. #
  13. # See the README file for information on usage and redistribution.
  14. #
  15.  
  16. import string
  17.  
  18. class PaletteFile:
  19.  
  20.     rawmode = "RGB"
  21.  
  22.     def __init__(self, fp):
  23.  
  24.         self.palette = map(lambda i: (i, i, i), range(256))
  25.  
  26.         while 1:
  27.  
  28.             s = fp.readline()
  29.  
  30.             if not s:
  31.                 break
  32.             if len(s) > 100:
  33.                 raise SyntaxError, "bad palette file"
  34.             
  35.             v = map(string.atoi, string.split(s))
  36.             try:
  37.                 [i, r, g, b] = v
  38.             except ValueError:
  39.                 [i, r] = v
  40.                 g = b = r
  41.  
  42.             if 0 <= i <= 255:
  43.                 self.palette[i] = chr(r) + chr(g) + chr(b)
  44.  
  45.         self.palette = string.join(self.palette, "")
  46.  
  47.  
  48.     def getpalette(self):
  49.  
  50.         return self.palette, self.rawmode
  51.