A non-optimized way to do it :
Save the above code in a file in the appropriate place (sorry, I'm linux addict, I don't know where windows user must save their plug-ins)
Ensure the file has execution rights.
Run GIMP : you will have a menu called 'csoulman' with one entry : 'the plug-in name'
To improve it :
- load the image only once, then use layer.copy()
- check pdb.gimp_file_load_layer success
Code:
#!/usr/bin/env python
#-*- coding: utf8 -*-
from gimpfu import *
def your_plug_in_function(image, filename, n_copy, x_start, y_start, h_offset, v_offset):
image.undo_group_start()
offset_x = x_start
offset_y = y_start
if not n_copy:
return
for i in range(n_copy):
layer = pdb.gimp_file_load_layer (image, filename)
pdb.gimp_layer_set_offsets(layer, offset_x, offset_y)
image.insert_layer(layer)
offset_x += h_offset
offset_y += v_offset
image.undo_group_end()
register(
"python_fu_plug_in_name_here",
"the short plug-in description",
"the long plug-in description",
"your name here ",
"your name here",
"the year",
"the plug-in name",
"*",
[
(PF_IMAGE, "image", "active image", None),
(PF_FILENAME, "filename", "File to load", None),
(PF_INT, "n_copy", "Number of image copies", 5),
(PF_INT, "x_start", "x position of the first layer", 0),
(PF_INT, "y_start", "y position of the first layer", 0),
(PF_INT, "h_offset", "Horizontal spacing", 1),
(PF_INT, "v_offset", "Vertical spacing", 1),
],
[],
your_plug_in_function, menu="<Image>/csoulman")
main()
Save the above code in a file in the appropriate place (sorry, I'm linux addict, I don't know where windows user must save their plug-ins)
Ensure the file has execution rights.
Run GIMP : you will have a menu called 'csoulman' with one entry : 'the plug-in name'
To improve it :
- load the image only once, then use layer.copy()
- check pdb.gimp_file_load_layer success