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