You are here

Announcing Gimpscripter plugin authoring tool, beta prototype

Announcing a new version of the "Make Shortcut" plugin, now called "GimpScripter". It lets you point-and-click create a plugin that calls a sequence of plugins, PDB procedures, or macros. It is a plugin authoring tool.

Gimpscripter is a Gimp plugin written in Python. It generates Python code for a plugin.

The source is at github.com/bootchk/gimpscripter. Installation instruction are in the README file. The source includes many readable documents such as NEWS, TODO, and a user's manual. You can download a tarball or zip there. It is in Python so just install it in the standard Gimp directory for plugins, no compilation necessary.

Gimpscripter is still in development. It usually works, but is incomplete and could be improved.

Take a look if you are interested in scripting Gimp, as a user or as a programmer.

Gimpscripter lets you visually (graphically, point-and-click) implement a sequential recipe, for example "Choose this, set that parameter, choose that, ..". It doesn't have any control flow statements.

It uses a stack model: it hides a prefix of parameters and references them to active objects.

It includes a macro facility and macros for common sequences of operations, and to wrap certain PDB procedures with higher-level parameter type, e.g. PF_BRUSH instead of PF_STRING for a brush.

Some people suggest using a recorder/playback tool to automate Gimp. Scripts from such tools break when the Gimp GUI changes, and the scripts are not easily distributable. Gimpscripter is an alternative.

Gimpscripter does have many weaknesses, some of which can be attributed to lack of support from the PDB. So it could help guide improvements to the PDB (but it might not raise any issues not already known, such as not storing defaults.)

I welcome comments or contributions.

Here is an example use, to make a plugin "Stroke selection with selection":

Choose "Filter/Gimpscripter" to start Gimpscripter.
From the menu pane choose "Edit/Copy".
Choose "Edit/Paste as/New Brush".
Choose "Select/To path".
Choose "Edit/Stroke/Path".
Enter a name for the plugin, for example "Stroke selection with selection".
Choose the OK button.
Read the summary and choose the OK button.
Restart Gimp.
Open an image and make a selection.
Choose "Shortcuts/Stroke selection with selection".
You should see a mobius like effect.

a wonderful beginning for gimp action scripts.
I use windows 32 bit XP and it runs pretty nicely on it.

My question-
Is there any way to run your actions and then record them with this filter?
Say a option to record last 10 or more (or less), history steps?
Then create the new py file with those actions?
That would then be a true macro recorder for Gimp. :)

I also noticed it sees my 8bf filters but wont allow use of them?

No, its not a macro recorder and probably never will be. That is another strategy altogether. There has been talk of doing that inside Gimp. I don't think it is possible in a plugin like this.

I'll need to study 8bf more before I can answer your question about that.

This plugin for me is a big deal.
Only a little lack the capacity to undo or re-editing shortcuts.
On 8bf: Gimpscripter sees them on the menu but did not see their performance (in the Settings dialog), but with Shortcuts calls them properly.
How to use macros.py? Do I need to add them by editing the plugin-wrapper-X.py?

Thanks for the encouraging words. I am starting to think it is NOT a big deal.

If you want to implement macros, edit the file .../plug-ins/gimpscripter/macros.py. I do not anticipate (think) most people will create macros. It takes a little programming skill. I anticipate that a complete set of macros will be written before Gimpscripter is released. The macros mainly fix small problems in the Gimp PDB, for example when you create a layer using PDB gimp_layer_new(), the layer is not attached to any image, but most people would prefer that it be attached to the current image, so a macro changes the menu item "Layer/New" to mean: create a layer AND attach it to the current image.

In addition to the final destination - of this plugin is an ideal to save their preferred settings (never mind that the manualy) for individual scripts and plug-ins - so even if only for this reason it is a revelation.

And now the dream - Wish List:

Gimpscripter allows for automatic conversion: script -> plugin
so if ”the occasion” could have been:

1. add a preview of the effect (a large window),
2. take account of new API for Gimp 2.7 (replace old GIMP Procedures - perhaps with the participation of GAL ? )

... but this is probably too difficult or impossible...

I wish more rapid progress and the next great achievement (to this point, the most admired works of Your plugin-trace.py ...)

Since no direct link download is here:
Gimpscripter

Is it compatible with windows 7 as well?

It should be compatible. Its pure Python. That means if you have Python installed with Gimp, it should work.

What is windows 7?

Question to the Author
Your work is truly revolutionary (scm -> py)
I am very surprised by the lack of discussion on this issue from other users and especially developers!
Will the next version? If Yes - it When?
I really am waiting for a signal that the next revolution CONTINUES

On Wishlist:
If the direct view is impossible - although, as happens after a glance
high-end sharpen.py:
Step 1.Python-fu-wrapper
Step 2 Preview, Undo Prewiew

Thanks for this plugin! Many people have waited for something like that, and now - it's there!
I'd like to make a proposal: what about giving the plugin the ability to perform batch-operations? It would be helpful if I could choose more than one image that has to be changed in one way or the other. For example I would appreciate the possiblity to resize the canvas of several images in one step.

For newbies like me it could be helpful to give installation instructions for MS Windows 7:

- Copy the contents of the folder ..\bootchk-gimpscripter-xxx to user's local directory c:\users\\.gimp-2.x\plug-ins\
- (re)start Gimp

If you copy the above mentioned files in C:\Program Files\Gimp-2.x\lib\gimp\2.0\plug-ins, the plugin will start, but won't work.

I use GS under Gimp 2.7.4 and get the following error-message:

"Plug-In „plugin-wrapper-ExportJPG.py“ (C:\users\...\.gimp2.7\plug-ins\plugin-wrapper-ExportJPG.py) called deprecated procedure ‚gimp-drawable-is-layer‘. It should call ‘gimp-item-is-layer’ instead!"

It was not a harmless warning?

The error-message has no effect as long as you only use one shortcut. But as soon as you create a shortcut that consists of 2 shortcuts (example: 1. shortcut resizes the canvas, 2. shortcut exports the image) the 2. shortcut doesn't work.

use it in any version other than Gimp-2.6.11 for now. It wasn't made for the developer version only the stable production version.

Okay, but GS doesn't appear in the filters-menu in Gimp 2.6.11 after being copied in C:\Users\\.gimp-2.6\plug-ins. Did I make a mistake?

Yes, I made a mistake! In contrast to Gimp 2.7.4 you have to manually install python etc. A very good tutorial for this task can be found here: http://www.gimpusers.de/tutorials/gimp-2-6-und-python-mit-windows (only in German).

I really like this plugin. Will there be more features added in the future? I was looking for the desaturate and add layer mask options but couldn't find any. Still a great plugin for gimp. I was able to create shortcuts for a lot of very tedious steps I use for sharpening images with edge masks.

It is still a prototype. No one has made any improvements since I uploaded it.

It is open source so anyone is free (able) to make improvements.

I created it as proof of concept. It interested me. I myself don't use it much. That is part of the problem: good software often is created when someone who can program needs something themselves. Some of the needed improvements are tedious: finding the missing items (desaturate?) and filling them. Also, it needs more testing, also tedious. Also, it needs to know the defaults to commands, and one way to accomplish that (collecting all the defaults in one place) is also tedious (and fragile.)

Consider it an experiment in user interface design. A competing design is a macro recorder: capture a record of a user's actions in the menus themselves, instead of in a mockup of the menus.

Also, ImageMagick is an alternative.

Someone privately asked:

...
Wow, seems like this script could really be some "super tool" for most
regular Gimp users. I'm not sure if I'm understanding this 100% correctly
though. For example, if I had a particular sequence of commands that I used
on most of my photos, would this script be able to do the following on one
image at a time, with a single click (once the photo has been opened):

1. Sharpen
2. Resize
3. Auto-Crop
4. Sharpen more, but less than #1
5. Save enhanced, finished photo

Would this script be able to utilize all 5 of the above actions at once? If
so, that would be pretty mind boggling. What a time saver ...
...

The short answer is: yes. I tried to create such a script (shortcut). It seemed to work, in that it created a shortcut, the shortcut did not crash and created a file. But the exercise showed known deficiencies:

- the default values are poor.

- there were spurious error dialogs when I deleted all the characters in a numeric text box for a parameter (setting.)

- the "Image.Resize" command exists but has a different name in the GIMP menus (Image.Canvas Size.. ?) and GIMPScripter doesn't tell you that it is an alias

- Image.Resize didn't seem to have all the parameters (Layers:) that Image.CanvasSize has ?

- the file save command didn't fit what I think you want to do, to save the file under the same name.

- when I wanted to run the exercise again (to make the file name enterable when you use the shortcut) I would have had to start over. There is no way to try a shortcut without creating it and restarting GIMP.

- I'm not really sure the shortcut worked as intended: resize followed by autocrop seems to do nothing if the original image is smaller than the size you want to resize to (I could be mistaken?). There is no way to visually debug a shortcut, to watch it work through the steps.

Subscribe to Comments for "Announcing Gimpscripter plugin authoring tool, beta prototype"