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