summaryrefslogtreecommitdiffstats
path: root/plug-ins/pygimp/plug-ins/foggify.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:30:19 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:30:19 +0000
commit5c1676dfe6d2f3c837a5e074117b45613fd29a72 (patch)
treecbffb45144febf451e54061db2b21395faf94bfe /plug-ins/pygimp/plug-ins/foggify.py
parentInitial commit. (diff)
downloadgimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.tar.xz
gimp-5c1676dfe6d2f3c837a5e074117b45613fd29a72.zip
Adding upstream version 2.10.34.upstream/2.10.34upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'plug-ins/pygimp/plug-ins/foggify.py')
-rwxr-xr-xplug-ins/pygimp/plug-ins/foggify.py77
1 files changed, 77 insertions, 0 deletions
diff --git a/plug-ins/pygimp/plug-ins/foggify.py b/plug-ins/pygimp/plug-ins/foggify.py
new file mode 100755
index 0000000..4964d8c
--- /dev/null
+++ b/plug-ins/pygimp/plug-ins/foggify.py
@@ -0,0 +1,77 @@
+#!/usr/bin/env python2
+
+# Gimp-Python - allows the writing of Gimp plugins in Python.
+# Copyright (C) 1997 James Henstridge <james@daa.com.au>
+#
+# This program 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.
+#
+# This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
+
+from gimpfu import *
+import time
+
+gettext.install("gimp20-python", gimp.locale_directory, unicode=True)
+
+def foggify(img, layer, name, colour, turbulence, opacity):
+
+ gimp.context_push()
+ img.undo_group_start()
+
+ if img.base_type is RGB:
+ type = RGBA_IMAGE
+ else:
+ type = GRAYA_IMAGE
+ fog = gimp.Layer(img, name,
+ layer.width, layer.height, type, opacity, NORMAL_MODE)
+ fog.fill(FILL_TRANSPARENT)
+ img.insert_layer(fog)
+
+ gimp.set_background(colour)
+ pdb.gimp_edit_fill(fog, FILL_BACKGROUND)
+
+ # create a layer mask for the new layer
+ mask = fog.create_mask(0)
+ fog.add_mask(mask)
+
+ # add some clouds to the layer
+ pdb.plug_in_plasma(img, mask, int(time.time()), turbulence)
+
+ # apply the clouds to the layer
+ fog.remove_mask(MASK_APPLY)
+
+ img.undo_group_end()
+ gimp.context_pop()
+
+register(
+ "python-fu-foggify",
+ N_("Add a layer of fog"),
+ "Adds a layer of fog to the image.",
+ "James Henstridge",
+ "James Henstridge",
+ "1999,2007",
+ N_("_Fog..."),
+ "RGB*, GRAY*",
+ [
+ (PF_IMAGE, "image", "Input image", None),
+ (PF_DRAWABLE, "drawable", "Input drawable", None),
+ (PF_STRING, "name", _("_Layer name"), _("Clouds")),
+ (PF_COLOUR, "colour", _("_Fog color"), (240, 180, 70)),
+ (PF_SLIDER, "turbulence", _("_Turbulence"), 1.0, (0, 7, 0.1)),
+ (PF_SLIDER, "opacity", _("Op_acity"), 100, (0, 100, 1)),
+ ],
+ [],
+ foggify,
+ menu="<Image>/Filters/Decor",
+ domain=("gimp20-python", gimp.locale_directory)
+ )
+
+main()