From 75c43de09dc872ed3ce4ace6cad9d708318be5ad Mon Sep 17 00:00:00 2001 From: Johannes 'josch' Schauer Date: Wed, 18 Jul 2018 00:58:17 +0200 Subject: [PATCH] Create a new PIL image before saving as TIFF to prevent libtiff errors closes: #46 --- src/img2pdf.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/img2pdf.py b/src/img2pdf.py index 767b82e..c7133ba 100755 --- a/src/img2pdf.py +++ b/src/img2pdf.py @@ -695,7 +695,13 @@ def transcode_monochrome(imgdata): # 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. 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 newimgio.seek(0)