diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index f124efd1..ed8242e3 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,10 @@ eclipse.preferences.version=1 +encoding//extensions/fablabchemnitz/color_harmony/color_harmony.py=utf-8 encoding//extensions/fablabchemnitz/create_links.py=utf-8 +encoding//extensions/fablabchemnitz/jitter_gradients.py=utf-8 encoding//extensions/fablabchemnitz/next_gen.py=utf-8 +encoding//extensions/fablabchemnitz/openClosedPath.py=utf-8 +encoding//extensions/fablabchemnitz/output_pro/outputpro.py=utf-8 +encoding//extensions/fablabchemnitz/path_number_subpaths.py=utf-8 +encoding//extensions/fablabchemnitz/reverse_order_subpaths.py=utf-8 encoding//extensions/fablabchemnitz/svgo-inkscape/svgo.inkscape.py=utf-8 diff --git a/extensions/fablabchemnitz/output_pro/outputpro.py b/extensions/fablabchemnitz/output_pro/outputpro.py index 6c2f13af..c880626b 100644 --- a/extensions/fablabchemnitz/output_pro/outputpro.py +++ b/extensions/fablabchemnitz/output_pro/outputpro.py @@ -609,7 +609,17 @@ class OutputProBitmap(inkex.EffectExtension): os.system('convert "' + os.path.join(dirpathTempFolder.name, 'original.png') + '" -filter box -resize 300x300 "' + os.path.join(dirpathTempFolder.name, 'original.png') + '"' ) os.system('convert "' + os.path.join(dirpathTempFolder.name, 'result.png') + '" -filter box -resize 300x300 "' + os.path.join(dirpathTempFolder.name, 'result.png') + '"' ) - os.system('convert "' + os.path.join(dirpathTempFolder.name, 'original.png') + '" "' + os.path.join(dirpathTempFolder.name, 'result.png') + '" "' + os.path.join(dirpathTempFolder.name, 'preview_mask.png') + '" -composite "' + os.path.join(dirpathTempFolder.name, 'preview.png') + '"' ) + os.system( + 'convert "' + + os.path.join(dirpathTempFolder.name, 'original.png') + + '" "' + + os.path.join(dirpathTempFolder.name, 'result.png') + + '" "' + + os.path.join(dirpathSoftware, 'preview_mask.png') + #static file from extension directory + '" -composite "' + + os.path.join(dirpathTempFolder.name, 'preview.png') + + '"' + ) self.view_image_info.setText(file_info_final + '
' + list_of_format_tips[list_of_export_formats[self.format_choice.currentIndex()]] + '') @@ -708,7 +718,16 @@ class OutputProBitmap(inkex.EffectExtension): last_height = 0 if self.prepress_paper_cutmarks_check.isChecked(): - cutmarks.generate_final_file(False, self.prepress_paper_cutmarks_inside_check.isChecked(),list_of_color_modes_jpeg[self.color_mode_choice_jpeg.currentIndex()], image_width, image_height, imposition_space,unittouu(str(self.prepress_paper_cutmarks_strokewidth_value.text()) + str(self.prepress_paper_cutmarks_strokewidth_choice.currentText())), bleedsize, marksize, dirpathTempFolder) + cutmarks.generate_final_file(False, + self.prepress_paper_cutmarks_inside_check.isChecked(), + list_of_color_modes_jpeg[self.color_mode_choice_jpeg.currentIndex()], + image_width, + image_height, + imposition_space, + unittouu(str(self.prepress_paper_cutmarks_strokewidth_value.text()) + str(self.prepress_paper_cutmarks_strokewidth_choice.currentText())), + bleedsize, + marksize, + dirpathTempFolder.name) cut_marks_command = ['composite'] cut_marks_command.append('-compose') @@ -833,23 +852,30 @@ class OutputProBitmap(inkex.EffectExtension): def cmyk_overprint_black(self): if self.cmyk_overblack_jpeg.isChecked(): - cmyk.generate_svg_separations(dirpathTempFolder + '/', open(os.path.join(dirpathTempFolder.name, 'original.svg')).read(), True) + cmyk.generate_svg_separations(dirpathTempFolder.name, open(os.path.join(dirpathTempFolder.name, 'original.svg')).read(), True) else: - cmyk.generate_svg_separations(dirpathTempFolder + '/', open(os.path.join(dirpathTempFolder.name, 'original.svg')).read(), False) + cmyk.generate_svg_separations(dirpathTempFolder.name, open(os.path.join(dirpathTempFolder.name, 'original.svg')).read(), False) def cmyk_advanced_manipulation(self): area_to_export = self.area_to_export() - cmyk.generate_png_separations(dirpathTempFolder + '/', self.area_to_export(), self.dpi_choice.value(), False) + cmyk.generate_png_separations(dirpathTempFolder.name, self.area_to_export(), self.dpi_choice.value(), False) for color in ['C', 'M', 'Y', 'K']: - subprocess.Popen(['convert', os.path.join(dirpathTempFolder.name, 'separated') + area_to_export.replace(' ', '') + color + ".png", '-colorspace', 'CMYK', '-channel', color, '-separate', dirpathTempFolder + '/' + "separated" + area_to_export.replace(' ', '') + color + ".png"]).wait() + subprocess.Popen( + ['convert', + os.path.join(dirpathTempFolder.name, 'separated' + area_to_export.replace(' ', '') + color + ".png"), + '-colorspace', 'CMYK', '-channel', + color, + '-separate', + os.path.join(dirpathTempFolder.name, 'separated' + area_to_export.replace(' ', '') + color + ".png")] + ).wait() self.cmyk_advanced_manipulation_view_separations() def cmyk_advanced_manipulation_view_separations(self): area_to_export = self.area_to_export() - file_info = subprocess.Popen(['identify', dirpathTempFolder + '/source.png'], stdout=subprocess.PIPE).communicate()[0] + file_info = subprocess.Popen(['identify', os.path.join(dirpathTempFolder.name, 'source.svg')], stdout=subprocess.PIPE).communicate()[0].decode('UTF-8') image_size = file_info.split(' ')[2] @@ -1000,16 +1026,16 @@ class OutputProBitmap(inkex.EffectExtension): self.export_button.setGeometry(430, 560, 200, 30) self.format_preview_check.setGeometry(230, 85, 200, 25) - self.move((QtGui.QDesktopWidget().screenGeometry().width()-self.geometry().width())/2, (QtGui.QDesktopWidget().screenGeometry().height()-self.geometry().height())/2) + self.move(int((QtWidgets.QDesktopWidget().screenGeometry().width()-self.geometry().width())/2), int((QtWidgets.QDesktopWidget().screenGeometry().height()-self.geometry().height())/2)) def export(self): - self.location_path = QtGui.QFileDialog.getSaveFileName(self, _(u"Save image"), os.environ.get('HOME', None), list_of_export_formats[self.format_choice.currentIndex()]).toUtf8() - + self.location_path = QtWidgets.QFileDialog.getSaveFileName(self, _(u"Save image"), os.environ.get('HOME', None), list_of_export_formats[self.format_choice.currentIndex()], options=QtWidgets.QFileDialog.DontConfirmOverwrite) + if not self.format_preview_check.isChecked(): self.generate_final_file() if not str(self.location_path) == '': - shutil.copy2(os.path.join(dirpathTempFolder.name, 'result-imp.') + list_of_export_formats[self.format_choice.currentIndex()].lower(), self.location_path) + shutil.copy2(os.path.join(dirpathTempFolder.name, 'result-imp.' + list_of_export_formats[self.format_choice.currentIndex()].lower()), self.location_path[0] + "." + self.location_path[1].lower()) diff --git a/extensions/fablabchemnitz/output_pro/outputpro/cmyk.py b/extensions/fablabchemnitz/output_pro/outputpro/cmyk.py index 33b0d410..d3b02654 100644 --- a/extensions/fablabchemnitz/output_pro/outputpro/cmyk.py +++ b/extensions/fablabchemnitz/output_pro/outputpro/cmyk.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 import re, subprocess, simplestyle, os +import inkex def calculateCMYK(red, green, blue): C = float() @@ -87,15 +88,19 @@ def representK(value): def generate_svg_separations(temp_dir, original_source, overblack): svg_ready = clean_svg_color_definitions(original_source) - open(temp_dir + "separationK.svg","w").write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representK, svg_ready)) + with open(os.path.join(temp_dir, "separationK.svg"), "w") as f: + f.write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representK, svg_ready)) if overblack: svg_ready = removeK(svg_ready) - open(temp_dir + "separationC.svg","w").write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representC, svg_ready)) - open(temp_dir + "separationM.svg","w").write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representM, svg_ready)) - open(temp_dir + "separationY.svg","w").write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representY, svg_ready)) - + with open(os.path.join(temp_dir, "separationC.svg"), "w") as f: + f.write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representC, svg_ready)) + with open(os.path.join(temp_dir, "separationM.svg"), "w") as f: + f.write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representM, svg_ready)) + with open(os.path.join(temp_dir, "separationY.svg"), "w") as f: + f.write(re.sub(r"#[a-fA-F0-9]{6}( icc-color\(.*?\))?", representY, svg_ready)) + def generate_png_separations(temp_dir, area_to_export, resolution, alpha): if alpha: alpha_command = "" @@ -105,7 +110,8 @@ def generate_png_separations(temp_dir, area_to_export, resolution, alpha): for color in ['C', 'M', 'Y', 'K']: string_inkscape_exec += temp_dir + "separation" + color + ".svg " + area_to_export + ' --export-png=' + temp_dir + "separated" + area_to_export.replace(' ', '') + color + ".png" + alpha_command + ' --export-dpi=' + str(resolution) + "\n" - open('/tmp/test.txt', 'w').write(string_inkscape_exec) + with open(os.path.join(temp_dir, 'test.txt'), 'w') as f: + f.write(string_inkscape_exec) inkscape_exec = subprocess.Popen(['inkscape -z --shell'], shell=True, stdout=open(os.devnull, 'w'), stderr=open(os.devnull, 'w'), stdin=subprocess.PIPE) - inkscape_exec.communicate(input=string_inkscape_exec) \ No newline at end of file + inkscape_exec.communicate(input=string_inkscape_exec.encode('UTF-8')) \ No newline at end of file diff --git a/extensions/fablabchemnitz/output_pro/outputpro/cutmarks.py b/extensions/fablabchemnitz/output_pro/outputpro/cutmarks.py index cb8fc843..73aa670f 100644 --- a/extensions/fablabchemnitz/output_pro/outputpro/cutmarks.py +++ b/extensions/fablabchemnitz/output_pro/outputpro/cutmarks.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import subprocess +import subprocess, os def generate_final_file(isvector, hide_inside_marks, colormode, width, height, space, strokewidth, bleedsize, marksize, temp_dir): if not isvector: @@ -27,8 +27,8 @@ def generate_final_file(isvector, hide_inside_marks, colormode, width, height, s number_of_line = 1 for line in height: - - open('/tmp/str.txt', 'a').write(str(width.index(column))) + with open(os.path.join(temp_dir, 'str.txt'), 'a') as f: + f.write(str(width.index(column))) if not hide_inside_marks or (hide_inside_marks and number_of_column == 1): command.append('-draw') @@ -58,24 +58,22 @@ def generate_final_file(isvector, hide_inside_marks, colormode, width, height, s number_of_line += 1 width_value += column + space number_of_column += 1 - command.append(temp_dir + '/cut_mark_' + color + '.png') + command.append(os.path.join(temp_dir, 'cut_mark_' + color + '.png')) subprocess.Popen(command).wait() del command[:] command.append('convert') - command.append(temp_dir + '/cut_mark_' + color + '.png') + command.append(os.path.join(temp_dir, 'cut_mark_' + color + '.png')) command.append('-colorspace') command.append(str(colormode).lower()) command.append('-channel') command.append('K') command.append('-separate') - command.append(temp_dir + '/cut_mark_' + color + '.png') + command.append(os.path.join(temp_dir, 'cut_mark_' + color + '.png')) subprocess.Popen(command).wait() del command[:] - final_command.append(temp_dir + '/cut_mark_' + color + '.png') + final_command.append(os.path.join(temp_dir, 'cut_mark_' + color + '.png')) - final_command.extend(['-set', 'colorspace', colormode, '-combine', temp_dir + '/cut_mark.tiff']) + final_command.extend(['-set', 'colorspace', colormode, '-combine', os.path.join(temp_dir, 'cut_mark.tiff')]) subprocess.Popen(final_command).wait() - -