Upload New File
This commit is contained in:
parent
cc8ef79174
commit
accac6acf5
168
arch-config/.config/GIMP/2.10/plug-ins/export_layers.py
Normal file
168
arch-config/.config/GIMP/2.10/plug-ins/export_layers.py
Normal file
@ -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 <khalim19@gmail.com>
|
||||||
|
#
|
||||||
|
# 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 <https://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
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="<Image>/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="<Image>/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()
|
Loading…
Reference in New Issue
Block a user