summaryrefslogtreecommitdiffstats
path: root/plug-ins/pygimp/plug-ins/clothify.py
diff options
context:
space:
mode:
Diffstat (limited to 'plug-ins/pygimp/plug-ins/clothify.py')
-rwxr-xr-xplug-ins/pygimp/plug-ins/clothify.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/plug-ins/pygimp/plug-ins/clothify.py b/plug-ins/pygimp/plug-ins/clothify.py
new file mode 100755
index 0000000..258329c
--- /dev/null
+++ b/plug-ins/pygimp/plug-ins/clothify.py
@@ -0,0 +1,76 @@
+#!/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/>.
+
+import math
+from gimpfu import *
+
+def clothify(timg, tdrawable, bx=9, by=9, azimuth=135, elevation=45, depth=3):
+ width = tdrawable.width
+ height = tdrawable.height
+
+ img = gimp.Image(width, height, RGB)
+ img.disable_undo()
+
+ layer_one = gimp.Layer(img, "X Dots", width, height, RGB_IMAGE,
+ 100, NORMAL_MODE)
+ img.insert_layer(layer_one)
+ pdb.gimp_edit_fill(layer_one, BACKGROUND_FILL)
+
+ pdb.plug_in_noisify(img, layer_one, 0, 0.7, 0.7, 0.7, 0.7)
+
+ layer_two = layer_one.copy()
+ layer_two.mode = MULTIPLY_MODE
+ layer_two.name = "Y Dots"
+ img.insert_layer(layer_two)
+
+ pdb.plug_in_gauss_rle(img, layer_one, bx, 1, 0)
+ pdb.plug_in_gauss_rle(img, layer_two, by, 0, 1)
+
+ img.flatten()
+
+ bump_layer = img.active_layer
+
+ pdb.plug_in_c_astretch(img, bump_layer)
+ pdb.plug_in_noisify(img, bump_layer, 0, 0.2, 0.2, 0.2, 0.2)
+ pdb.plug_in_bump_map(img, tdrawable, bump_layer, azimuth,
+ elevation, depth, 0, 0, 0, 0, True, False, 0)
+
+ gimp.delete(img)
+
+register(
+ "python-fu-clothify",
+ "Make the image look like it is printed on cloth",
+ "Make the specified layer look like it is printed on cloth",
+ "James Henstridge",
+ "James Henstridge",
+ "1997-1999",
+ "_Clothify...",
+ "RGB*, GRAY*",
+ [
+ (PF_IMAGE, "image", "Input image", None),
+ (PF_DRAWABLE, "drawable", "Input drawable", None),
+ (PF_INT, "x-blur", "X blur", 9),
+ (PF_INT, "y-blur", "Y blur", 9),
+ (PF_INT, "azimuth", "Azimuth", 135),
+ (PF_INT, "elevation", "Elevation", 45),
+ (PF_INT, "depth", "Depth", 3)
+ ],
+ [],
+ clothify, menu="<Image>/Filters/Artistic")
+
+main()