|
2 | 2 |
|
3 | 3 | import sys
|
4 | 4 | sys.path.append('/usr/share/inkscape/extensions')
|
| 5 | +import contextlib |
5 | 6 | import inkex
|
6 | 7 | import os
|
7 | 8 | import subprocess
|
@@ -34,15 +35,15 @@ def effect(self):
|
34 | 35 | if not os.path.exists(os.path.join(output_path)):
|
35 | 36 | os.makedirs(os.path.join(output_path))
|
36 | 37 |
|
37 |
| - with tempfile.NamedTemporaryFile() as fp_svg: |
38 |
| - layer_dest_svg_path = fp_svg.name |
| 38 | + with _make_temp_directory() as tmp_dir: |
| 39 | + layer_dest_svg_path = os.path.join(tmp_dir, "export.svg") |
39 | 40 | self.export_layers(layer_dest_svg_path, show_layer_ids)
|
40 | 41 |
|
41 | 42 | if self.options.filetype == "jpeg":
|
42 |
| - with tempfile.NamedTemporaryFile() as fp_png: |
43 |
| - self.exportToPng(layer_dest_svg_path, fp_png.name) |
44 |
| - layer_dest_jpg_path = os.path.join(output_path, "%s_%s.jpg" % (str(counter).zfill(3), layer_label)) |
45 |
| - self.convertPngToJpg(fp_png.name, layer_dest_jpg_path) |
| 43 | + tmp_dest_png_path = os.path.join(tmp_dir, "export.png") |
| 44 | + self.exportToPng(layer_dest_svg_path, tmp_dest_png_path) |
| 45 | + layer_dest_jpg_path = os.path.join(output_path, "%s_%s.jpg" % (str(counter).zfill(3), layer_label)) |
| 46 | + self.convertPngToJpg(tmp_dest_png_path, layer_dest_jpg_path) |
46 | 47 | else:
|
47 | 48 | layer_dest_png_path = os.path.join(output_path, "%s_%s.png" % (str(counter).zfill(3), layer_label))
|
48 | 49 | self.exportToPng(layer_dest_svg_path, layer_dest_png_path)
|
@@ -103,6 +104,15 @@ def convertPngToJpg(self, png_path, output_path):
|
103 | 104 | p.wait()
|
104 | 105 |
|
105 | 106 |
|
| 107 | +@contextlib.contextmanager |
| 108 | +def _make_temp_directory(): |
| 109 | + temp_dir = tempfile.mkdtemp(prefix="tmp-inkscape") |
| 110 | + try: |
| 111 | + yield temp_dir |
| 112 | + finally: |
| 113 | + shutil.rmtree(temp_dir) |
| 114 | + |
| 115 | + |
106 | 116 | def _main():
|
107 | 117 | e = PNGExport()
|
108 | 118 | e.affect()
|
|
0 commit comments