#!/usr/bin/python # Gimp-Python - allows the writing of Gimp plugins in Python. # Copyright (C) 1997 James Henstridge # # 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 2 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, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import sys, math import gimp, plugin, getvals from gimpenums import * pdb = gimp.pdb class clothify(plugin.plugin): def query(self): gimp.install_procedure( "python_clothify", "Render the specified text along the perimeter of a circle", "Render the specified text along the perimeter of a circle", "James Henstridge", "James Henstridge", "1997", "/Filters/Gimp Python/Alchemy/Clothify", "RGB*, GRAY*", PROC_PLUG_IN, [ (PARAM_INT32, "run_mode", "Interactive, Non-Interactive"), (PARAM_IMAGE, "image", "The Image"), (PARAM_DRAWABLE, "drawable", "The drawable"), (PARAM_INT32, "x_blur", "X Blur"), (PARAM_INT32, "y_blur", "Y Blur"), (PARAM_INT32, "azimuth", "Azimuth"), (PARAM_INT32, "elevation", "elevation"), (PARAM_INT32, "depth", "Depth") ], [] ) def python_clothify(self, run_mode, timg, tdrawable, bx=9, by=9, azimuth=135, elevation=45, depth=3): bx = 9 ; by = 9 ; azimuth = 135 ; elevation = 45 ; depth = 3 if run_mode == RUN_INTERACTIVE: ret = getvals.getvals("Clothify", ("X Blur", "Y Blur", "Azimuth", "Elevation", "Depth"), (9, 9, 135, 45, 3)) if ret == (): return bx, by, azimuth, elevation, depth = ret width = tdrawable.width height = tdrawable.height img = gimp.image(width, height, RGB) layer_one = gimp.layer(img, "X Dots", width, height, RGB_IMAGE, 100, NORMAL_MODE) img.disable_undo() pdb.gimp_edit_fill(img, layer_one) img.add_layer(layer_one, 0) 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.add_layer(layer_two, 0) 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, 0) gimp.delete(img) gimp.displays_flush() if __name__ == '__main__': clothify().start()