mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-03 19:33:07 +03:00
Reduce number of bytes read for PCX header (#9004)
This commit is contained in:
commit
ff624fe1e6
|
@ -54,7 +54,7 @@ class PcxImageFile(ImageFile.ImageFile):
|
|||
# header
|
||||
assert self.fp is not None
|
||||
|
||||
s = self.fp.read(128)
|
||||
s = self.fp.read(68)
|
||||
if not _accept(s):
|
||||
msg = "not a PCX file"
|
||||
raise SyntaxError(msg)
|
||||
|
@ -66,6 +66,8 @@ class PcxImageFile(ImageFile.ImageFile):
|
|||
raise SyntaxError(msg)
|
||||
logger.debug("BBox: %s %s %s %s", *bbox)
|
||||
|
||||
offset = self.fp.tell() + 60
|
||||
|
||||
# format
|
||||
version = s[1]
|
||||
bits = s[3]
|
||||
|
@ -102,7 +104,6 @@ class PcxImageFile(ImageFile.ImageFile):
|
|||
break
|
||||
if mode == "P":
|
||||
self.palette = ImagePalette.raw("RGB", s[1:])
|
||||
self.fp.seek(128)
|
||||
|
||||
elif version == 5 and bits == 8 and planes == 3:
|
||||
mode = "RGB"
|
||||
|
@ -128,9 +129,7 @@ class PcxImageFile(ImageFile.ImageFile):
|
|||
bbox = (0, 0) + self.size
|
||||
logger.debug("size: %sx%s", *self.size)
|
||||
|
||||
self.tile = [
|
||||
ImageFile._Tile("pcx", bbox, self.fp.tell(), (rawmode, planes * stride))
|
||||
]
|
||||
self.tile = [ImageFile._Tile("pcx", bbox, offset, (rawmode, planes * stride))]
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue
Block a user