Create a new PIL image before saving as TIFF to prevent libtiff errors

closes: #46
This commit is contained in:
Johannes 'josch' Schauer 2018-07-18 00:58:17 +02:00
parent eec1a25a92
commit 75c43de09d
Signed by untrusted user: josch
GPG key ID: F2CBA5C78FBD83E1

View file

@ -695,7 +695,13 @@ def transcode_monochrome(imgdata):
# Convert the image to Group 4 in memory. If libtiff is not installed and # Convert the image to Group 4 in memory. If libtiff is not installed and
# Pillow is not compiled against it, .save() will raise an exception. # Pillow is not compiled against it, .save() will raise an exception.
newimgio = BytesIO() newimgio = BytesIO()
imgdata.save(newimgio, format='TIFF', compression='group4')
# we create a whole new PIL image or otherwise it might happen with some
# input images, that libtiff fails an assert and the whole process is
# killed by a SIGABRT:
# https://gitlab.mister-muffin.de/josch/img2pdf/issues/46
im = Image.frombytes(imgdata.mode, imgdata.size, imgdata.tobytes())
im.save(newimgio, format='TIFF', compression='group4')
# Open new image in memory # Open new image in memory
newimgio.seek(0) newimgio.seek(0)