From e9c047d33681a006b3c618b670fe9ee964c94099 Mon Sep 17 00:00:00 2001 From: Mario Voigt Date: Thu, 15 Jul 2021 16:28:01 +0200 Subject: [PATCH] some more small fixes --- .../contour_scanner_and_trimmer.py | 5 ++++- .../export_selection_as/export_selection_as.py | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) 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()