Gimp python plugins
John R. Culleton
john at wexfordpress.com
Thu May 10 18:27:42 CEST 2007
Gimp uses mostly Scheme plugins but a handful have been translated to
Python. Has anyone attempted to convert these for use with Krita? I
am thinking of things like whirl and pinch.
Here is a brief one (shadow_bevel) as an example:
----------------------------------------------------------------------------------
#!/usr/bin/env python
# Gimp-Python - allows the writing of Gimp plugins in Python.
# Copyright (C) 1997 James Henstridge <james at 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 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., 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
from gimpfu import *
gettext.install("gimp20-python", gimp.locale_directory, unicode=True)
def shadow_bevel(img, drawable, blur, bevel, do_shadow, drop_x,
drop_y):
# disable undo for the image
img.undo_group_start()
# copy the layer
shadow = drawable.copy(True)
img.add_layer(shadow, img.layers.index(drawable)+1)
shadow.name = drawable.name + " shadow"
shadow.lock_alpha = False
# threshold the shadow layer to all white
pdb.gimp_threshold(shadow, 0, 255)
# blur the shadow layer
pdb.plug_in_gauss_iir(img, shadow, blur, True, True)
# do the bevel thing ...
if bevel:
pdb.plug_in_bump_map(img, drawable, shadow, 135, 45, 3,
0, 0, 0, 0, True, False, 0)
# make the shadow layer black now ...
pdb.gimp_invert(shadow)
# translate the drop shadow
shadow.translate(drop_x, drop_y)
if not do_shadow:
# delete shadow ...
gimp.delete(shadow)
# enable undo again
img.undo_group_end()
register(
"python-fu-shadow-bevel",
N_("Add a drop shadow to a layer, and optionally bevel it"),
"Add a drop shadow to a layer, and optionally bevel it",
"James Henstridge",
"James Henstridge",
"1999",
N_("_Drop Shadow and Bevel..."),
"RGBA, GRAYA",
[
(PF_SLIDER, "blur", _("Shadow blur"), 6, (1, 30, 1)),
(PF_BOOL, "bevel", _("Bevel"), True),
(PF_BOOL, "shadow", _("Drop shadow"), True),
(PF_INT, "drop-x", _("Drop shadow X displacement"), 3),
(PF_INT, "drop-y", _("Drop shadow Y displacement"), 6)
],
[],
shadow_bevel,
menu="<Image>/Filters/Light and Shadow/Shadow",
domain=("gimp20-python", gimp.locale_directory)
)
main()
---------------------------------------------------------------
--
John Culleton
Able Indexing and Typesetting
Precision typesetting (tm) at reasonable cost.
Satisfaction guaranteed.
http://wexfordpress.com
More information about the kimageshop
mailing list