MCPcopy Create free account
hub / github.com/python-pillow/Pillow / decode

Method decode

src/PIL/XpmImagePlugin.py:121–145  ·  view source on GitHub ↗
(self, buffer: Image.DecoderInput)

Source from the content-addressed store, hash-verified

119 _pulls_fd = True
120
121 def decode(self, buffer: Image.DecoderInput) -> tuple[int, int]:
122 assert self.fd is not None
123
124 data = bytearray()
125 bpp, palette = self.args
126 dest_length = self.state.xsize * self.state.ysize
127 if self.mode == "RGB":
128 dest_length *= 3
129 pixel_header = False
130 while len(data) < dest_length:
131 line = self.fd.readline()
132 if not line:
133 break
134 if line.rstrip() == b"/* pixels */" and not pixel_header:
135 pixel_header = True
136 continue
137 line = b'"'.join(line.split(b'"')[1:-1])
138 for i in range(0, len(line), bpp):
139 key = line[i : i + bpp]
140 if self.mode == "RGB":
141 data += palette[key]
142 else:
143 data += o8(palette.index(key))
144 self.set_as_raw(bytes(data))
145 return -1, 0
146
147
148#

Callers

nothing calls this directly

Calls 4

o8Function · 0.85
readlineMethod · 0.80
splitMethod · 0.80
set_as_rawMethod · 0.80

Tested by

no test coverage detected