mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-26 01:46:18 +03:00
Remove redundant decompression; adjust jpeg read mode to be RGBX (pad)
This commit is contained in:
parent
52637a4268
commit
e6c510ef38
|
@ -259,12 +259,12 @@ OPEN_INFO = {
|
||||||
|
|
||||||
(II, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"),
|
(II, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"),
|
||||||
(MM, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"),
|
(MM, 6, (1,), 1, (8, 8, 8), ()): ("RGB", "RGB"),
|
||||||
(II, 6, (1,), 1, (8, 8, 8, 8), (0,)): ("RGB", "RGBX"),
|
(II, 6, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"),
|
||||||
(MM, 6, (1,), 1, (8, 8, 8, 8), (0,)): ("RGB", "RGBX"),
|
(MM, 6, (1,), 1, (8, 8, 8, 8), (0,)): ("RGBX", "RGBX"),
|
||||||
(II, 6, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGB", "RGBXX"),
|
(II, 6, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"),
|
||||||
(MM, 6, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGB", "RGBXX"),
|
(MM, 6, (1,), 1, (8, 8, 8, 8, 8), (0, 0)): ("RGBX", "RGBXX"),
|
||||||
(II, 6, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGB", "RGBXXX"),
|
(II, 6, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"),
|
||||||
(MM, 6, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGB", "RGBXXX"),
|
(MM, 6, (1,), 1, (8, 8, 8, 8, 8, 8), (0, 0, 0)): ("RGBX", "RGBXXX"),
|
||||||
|
|
||||||
(II, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"),
|
(II, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"),
|
||||||
(MM, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"),
|
(MM, 8, (1,), 1, (8, 8, 8), ()): ("LAB", "LAB"),
|
||||||
|
@ -1053,23 +1053,6 @@ class TiffImageFile(ImageFile.ImageFile):
|
||||||
"Return the current frame number"
|
"Return the current frame number"
|
||||||
return self.__frame
|
return self.__frame
|
||||||
|
|
||||||
def _decoder(self, rawmode, layer, stride):
|
|
||||||
"Setup decoder contexts"
|
|
||||||
|
|
||||||
args = None
|
|
||||||
if rawmode == "RGB" and self._planar_configuration == 2:
|
|
||||||
rawmode = rawmode[layer]
|
|
||||||
stride /= 3
|
|
||||||
compression = self._compression
|
|
||||||
if compression == "raw":
|
|
||||||
args = (rawmode, int(stride), 1)
|
|
||||||
if compression == "jpeg":
|
|
||||||
args = ("RGB", "")
|
|
||||||
elif compression == "packbits":
|
|
||||||
args = rawmode
|
|
||||||
|
|
||||||
return args
|
|
||||||
|
|
||||||
def load(self):
|
def load(self):
|
||||||
if self.use_load_libtiff:
|
if self.use_load_libtiff:
|
||||||
return self._load_libtiff()
|
return self._load_libtiff()
|
||||||
|
@ -1325,7 +1308,14 @@ class TiffImageFile(ImageFile.ImageFile):
|
||||||
else:
|
else:
|
||||||
stride = 0
|
stride = 0
|
||||||
|
|
||||||
a = self._decoder(rawmode, layer, stride)
|
tile_rawmode = rawmode
|
||||||
|
if self._planar_configuration == 2:
|
||||||
|
# each band on it's own layer
|
||||||
|
tile_rawmode = rawmode[layer]
|
||||||
|
# adjust stride width accordingly
|
||||||
|
stride /= bps_count
|
||||||
|
|
||||||
|
a = (tile_rawmode, int(stride), 1)
|
||||||
self.tile.append(
|
self.tile.append(
|
||||||
(self._compression,
|
(self._compression,
|
||||||
(x, y, min(x+w, xsize), min(y+h, ysize)),
|
(x, y, min(x+w, xsize), min(y+h, ysize)),
|
||||||
|
@ -1336,7 +1326,6 @@ class TiffImageFile(ImageFile.ImageFile):
|
||||||
if y >= self.size[1]:
|
if y >= self.size[1]:
|
||||||
x = y = 0
|
x = y = 0
|
||||||
layer += 1
|
layer += 1
|
||||||
self.tile_prefix = self.tag_v2.get(JPEGTABLES, b"")
|
|
||||||
else:
|
else:
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print("- unsupported data organization")
|
print("- unsupported data organization")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user