diff --git a/extensions/fablabchemnitz/contour_scanner_and_trimmer/contour_scanner_and_trimmer.py b/extensions/fablabchemnitz/contour_scanner_and_trimmer/contour_scanner_and_trimmer.py index 3503efa0..5d9b215b 100644 --- a/extensions/fablabchemnitz/contour_scanner_and_trimmer/contour_scanner_and_trimmer.py +++ b/extensions/fablabchemnitz/contour_scanner_and_trimmer/contour_scanner_and_trimmer.py @@ -1200,7 +1200,10 @@ class ContourScannerAndTrimmer(inkex.EffectExtension): allSubSplitLineStringsTransformed = [] for subSplitLine in subSplitLineArray: csp = subSplitLine.path.to_arrays() - cspTransformed = Path(subSplitLine.path.transform(subSplitLine.getparent().composed_transform())).to_arrays() + if subSplitLine.getparent() != None: + cspTransformed = Path(subSplitLine.path.transform(subSplitLine.getparent().composed_transform())).to_arrays() + else: + cspTransformed = csp lineString = [(csp[0][1][0], csp[0][1][1]), (csp[1][1][0], csp[1][1][1])] lineStringTransformed = [(cspTransformed[0][1][0], cspTransformed[0][1][1]), (cspTransformed[1][1][0], cspTransformed[1][1][1])] if so.remove_trim_duplicates is True: diff --git a/extensions/fablabchemnitz/export_selection_as/export_selection_as.py b/extensions/fablabchemnitz/export_selection_as/export_selection_as.py index cb10d078..d8baaa39 100644 --- a/extensions/fablabchemnitz/export_selection_as/export_selection_as.py +++ b/extensions/fablabchemnitz/export_selection_as/export_selection_as.py @@ -8,7 +8,6 @@ import os import sys import subprocess from subprocess import Popen, PIPE -import warnings import inkex from inkex import Rectangle import inkex.command @@ -17,7 +16,8 @@ import tempfile from PIL import Image import base64 from io import BytesIO - +import warnings +warnings.simplefilter('ignore', Image.DecompressionBombWarning) from lxml import etree from scour.scour import scourString @@ -244,7 +244,11 @@ class ExportObject(inkex.EffectExtension): for elem in selected.values(): elem.delete() #read png file and get base64 string from it - img = Image.open(png_export) + try: + img = Image.open(png_export) + except Image.DecompressionBombError as e: #we could also increse PIL.Image.MAX_IMAGE_PIXELS = some large int + self.msg("Error. Image is too large. Reduce DPI and try again!") + exit(1) output_buffer = BytesIO() img.save(output_buffer, format='PNG') byte_data = output_buffer.getvalue()