Coverage for /usr/lib/python3/dist-packages/PIL/PaletteFile.py: 23%

26 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2025-06-14 15:55 +0200

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# 

15from __future__ import annotations 

16 

17from ._binary import o8 

18 

19 

20class PaletteFile: 

21 """File handler for Teragon-style palette files.""" 

22 

23 rawmode = "RGB" 

24 

25 def __init__(self, fp): 

26 self.palette = [(i, i, i) for i in range(256)] 

27 

28 while True: 

29 s = fp.readline() 

30 

31 if not s: 

32 break 

33 if s[:1] == b"#": 

34 continue 

35 if len(s) > 100: 

36 msg = "bad palette file" 

37 raise SyntaxError(msg) 

38 

39 v = [int(x) for x in s.split()] 

40 try: 

41 [i, r, g, b] = v 

42 except ValueError: 

43 [i, r] = v 

44 g = b = r 

45 

46 if 0 <= i <= 255: 

47 self.palette[i] = o8(r) + o8(g) + o8(b) 

48 

49 self.palette = b"".join(self.palette) 

50 

51 def getpalette(self): 

52 return self.palette, self.rawmode