123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import re
- from . import Image, ImageFile
- field = re.compile(br"([a-z]*) ([^ \r\n]*)")
- class ImtImageFile(ImageFile.ImageFile):
- format = "IMT"
- format_description = "IM Tools"
- def _open(self):
-
-
- if b"\n" not in self.fp.read(100):
- raise SyntaxError("not an IM file")
- self.fp.seek(0)
- xsize = ysize = 0
- while True:
- s = self.fp.read(1)
- if not s:
- break
- if s == b"\x0C":
-
- self.tile = [
- ("raw", (0, 0) + self.size, self.fp.tell(), (self.mode, 0, 1))
- ]
- break
- else:
-
-
- s = s + self.fp.readline()
- if len(s) == 1 or len(s) > 100:
- break
- if s[0] == ord(b"*"):
- continue
- m = field.match(s)
- if not m:
- break
- k, v = m.group(1, 2)
- if k == "width":
- xsize = int(v)
- self._size = xsize, ysize
- elif k == "height":
- ysize = int(v)
- self._size = xsize, ysize
- elif k == "pixel" and v == "n8":
- self.mode = "L"
- Image.register_open(ImtImageFile.format, ImtImageFile)
|