123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- from . import Image, ImageFile, ImagePalette
- from ._binary import o8
- _MAGIC = b"P7 332"
- PALETTE = b""
- for r in range(8):
- for g in range(8):
- for b in range(4):
- PALETTE = PALETTE + (
- o8((r * 255) // 7) + o8((g * 255) // 7) + o8((b * 255) // 3)
- )
- def _accept(prefix):
- return prefix[:6] == _MAGIC
- class XVThumbImageFile(ImageFile.ImageFile):
- format = "XVThumb"
- format_description = "XV thumbnail image"
- def _open(self):
-
- if not _accept(self.fp.read(6)):
- raise SyntaxError("not an XV thumbnail file")
-
- self.fp.readline()
-
- while True:
- s = self.fp.readline()
- if not s:
- raise SyntaxError("Unexpected EOF reading XV thumbnail file")
- if s[0] != 35:
- break
-
- s = s.strip().split()
- self.mode = "P"
- self._size = int(s[0]), int(s[1])
- self.palette = ImagePalette.raw("RGB", PALETTE)
- self.tile = [("raw", (0, 0) + self.size, self.fp.tell(), (self.mode, 0, 1))]
- Image.register_open(XVThumbImageFile.format, XVThumbImageFile, _accept)
|