Fixed: DecodeParms array support.
parent
137fc3a1ae
commit
f5b5e31921
|
@ -71,7 +71,7 @@ class ImageWriter(object):
|
||||||
stream = image.stream
|
stream = image.stream
|
||||||
filters = stream.get_filters()
|
filters = stream.get_filters()
|
||||||
(width, height) = image.srcsize
|
(width, height) = image.srcsize
|
||||||
if len(filters) == 1 and filters[0] in LITERALS_DCT_DECODE:
|
if len(filters) == 1 and filters[0][0] in LITERALS_DCT_DECODE:
|
||||||
ext = '.jpg'
|
ext = '.jpg'
|
||||||
elif (image.bits == 1 or
|
elif (image.bits == 1 or
|
||||||
image.bits == 8 and image.colorspace in (LITERAL_DEVICE_RGB, LITERAL_DEVICE_GRAY)):
|
image.bits == 8 and image.colorspace in (LITERAL_DEVICE_RGB, LITERAL_DEVICE_GRAY)):
|
||||||
|
|
|
@ -218,11 +218,14 @@ class PDFStream(PDFObject):
|
||||||
|
|
||||||
def get_filters(self):
|
def get_filters(self):
|
||||||
filters = self.get_any(('F', 'Filter'))
|
filters = self.get_any(('F', 'Filter'))
|
||||||
|
params = self.get_any(('DP', 'DecodeParms', 'FDecodeParms'), {})
|
||||||
if not filters:
|
if not filters:
|
||||||
return []
|
return []
|
||||||
if isinstance(filters, list):
|
if not isinstance(filters, list):
|
||||||
return filters
|
filters = [filters]
|
||||||
return [filters]
|
if not isinstance(params, list):
|
||||||
|
params = [params]
|
||||||
|
return zip(filters, params)
|
||||||
|
|
||||||
def decode(self):
|
def decode(self):
|
||||||
assert self.data is None and self.rawdata is not None
|
assert self.data is None and self.rawdata is not None
|
||||||
|
@ -235,8 +238,7 @@ class PDFStream(PDFObject):
|
||||||
self.data = data
|
self.data = data
|
||||||
self.rawdata = None
|
self.rawdata = None
|
||||||
return
|
return
|
||||||
for f in filters:
|
for (f,params) in filters:
|
||||||
params = self.get_any(('DP', 'DecodeParms', 'FDecodeParms'), {})
|
|
||||||
if f in LITERALS_FLATE_DECODE:
|
if f in LITERALS_FLATE_DECODE:
|
||||||
# will get errors if the document is encrypted.
|
# will get errors if the document is encrypted.
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue