From accac6acf52602424803ce7674e1f96ae736c1dc Mon Sep 17 00:00:00 2001 From: RealStickman Date: Wed, 15 Apr 2020 09:11:10 +0000 Subject: [PATCH] Upload New File --- .../GIMP/2.10/plug-ins/export_layers.py | 168 ++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 arch-config/.config/GIMP/2.10/plug-ins/export_layers.py diff --git a/arch-config/.config/GIMP/2.10/plug-ins/export_layers.py b/arch-config/.config/GIMP/2.10/plug-ins/export_layers.py new file mode 100644 index 00000000..2a7cc9f6 --- /dev/null +++ b/arch-config/.config/GIMP/2.10/plug-ins/export_layers.py @@ -0,0 +1,168 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- +# +# Export Layers - GIMP plug-in that exports layers as separate images +# +# Copyright (C) 2013-2019 khalim19 +# +# Export Layers is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Export Layers is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Export Layers. If not, see . + +from __future__ import absolute_import, division, print_function, unicode_literals + +import inspect +import os +import sys + +# Fix Windows installation failing to import modules from subdirectories in the +# "plug-ins" directory. +if os.name == "nt": + current_module_dirpath = os.path.dirname(inspect.getfile(inspect.currentframe())) + if current_module_dirpath not in sys.path: + sys.path.append(current_module_dirpath) + +# Disable overlay scrollbar (notably used in Ubuntu) to be consistent with the +# Export menu. +os.environ["LIBOVERLAY_SCROLLBAR"] = "0" + +from export_layers import pygimplib +from future.builtins import * + +import gimpenums + +from export_layers.pygimplib import pgitemtree +from export_layers.pygimplib import pgsettingpdb + +import export_layers.config +export_layers.config.init() + +from export_layers import exportlayers +from export_layers import settings_plugin +from export_layers import update +from export_layers.gui import gui_plugin + +pygimplib.init() + + +SETTINGS = settings_plugin.create_settings() + + +@pygimplib.procedure( + blurb=_("Export layers as separate images"), + author="{} <{}>".format( + pygimplib.config.AUTHOR_NAME, pygimplib.config.AUTHOR_CONTACT), + copyright_notice=pygimplib.config.AUTHOR_NAME, + date=pygimplib.config.COPYRIGHT_YEARS, + menu_name=_("E_xport Layers..."), + menu_path="/File/Export", + parameters=[SETTINGS["special"], SETTINGS["main"]] +) +def plug_in_export_layers(run_mode, image, *args): + SETTINGS["special/run_mode"].set_value(run_mode) + SETTINGS["special/image"].set_value(image) + + layer_tree = pgitemtree.LayerTree( + image, name=pygimplib.config.SOURCE_PERSISTENT_NAME, is_filtered=True) + _setup_settings_additional(SETTINGS, layer_tree) + + status = update.update(SETTINGS, run_mode == gimpenums.RUN_INTERACTIVE) + if status == update.ABORT: + return + + if run_mode == gimpenums.RUN_INTERACTIVE: + _run_export_layers_interactive(layer_tree) + elif run_mode == gimpenums.RUN_WITH_LAST_VALS: + _run_with_last_vals(layer_tree) + else: + _run_noninteractive(layer_tree, args) + + +@pygimplib.procedure( + blurb=_('Run "{}" with the last values specified').format( + pygimplib.config.PLUGIN_TITLE), + description=_( + "If the plug-in is run for the first time (i.e. no last values exist), " + "default values will be used."), + author="{} <{}>".format( + pygimplib.config.AUTHOR_NAME, pygimplib.config.AUTHOR_CONTACT), + copyright_notice=pygimplib.config.AUTHOR_NAME, + date=pygimplib.config.COPYRIGHT_YEARS, + menu_name=_("E_xport Layers (repeat)"), + menu_path="/File/Export", + parameters=[SETTINGS["special"]] +) +def plug_in_export_layers_repeat(run_mode, image): + layer_tree = pgitemtree.LayerTree( + image, name=pygimplib.config.SOURCE_PERSISTENT_NAME, is_filtered=True) + _setup_settings_additional(SETTINGS, layer_tree) + + status = update.update(SETTINGS, run_mode == gimpenums.RUN_INTERACTIVE) + if status == update.ABORT: + return + + if run_mode == gimpenums.RUN_INTERACTIVE: + SETTINGS["special/first_plugin_run"].load() + if SETTINGS["special/first_plugin_run"].value: + _run_export_layers_interactive(layer_tree) + else: + _run_export_layers_repeat_interactive(layer_tree) + else: + _run_with_last_vals(layer_tree) + + +def _setup_settings_additional(settings, layer_tree): + settings_plugin.setup_image_ids_and_filepaths_settings( + settings["main/selected_layers"], + settings["main/selected_layers_persistent"], + settings_plugin.convert_set_of_layer_ids_to_names, [layer_tree], + settings_plugin.convert_set_of_layer_names_to_ids, [layer_tree]) + + +def _run_noninteractive(layer_tree, args): + main_settings = [ + setting for setting in SETTINGS["main"].walk() + if setting.can_be_registered_to_pdb()] + + for setting, arg in zip(main_settings, pgsettingpdb.iter_args(args, main_settings)): + setting.set_value(arg) + + _run_plugin_noninteractive(gimpenums.RUN_NONINTERACTIVE, layer_tree) + + +def _run_with_last_vals(layer_tree): + SETTINGS["main"].load() + + _run_plugin_noninteractive(gimpenums.RUN_WITH_LAST_VALS, layer_tree) + + +def _run_export_layers_interactive(layer_tree): + gui_plugin.ExportLayersGui(layer_tree, SETTINGS) + + +def _run_export_layers_repeat_interactive(layer_tree): + gui_plugin.ExportLayersRepeatGui(layer_tree, SETTINGS) + + +def _run_plugin_noninteractive(run_mode, layer_tree): + layer_exporter = exportlayers.LayerExporter( + run_mode, layer_tree.image, SETTINGS["main"]) + + try: + layer_exporter.export(layer_tree=layer_tree) + except exportlayers.ExportLayersCancelError: + pass + + +#=============================================================================== + +pygimplib.main()