ANN: Netpbm2Gimp -- simplified GIMP plug-in development

I just released two open-source software packages that should be of interest to the readers of this forum. The first is Netpbm2Gimp, a program that converts programs written using the easy-to-use Netpbm library into GIMP plug-ins.

For those of you not familiar with it, the Netpbm library basically provides a set of simple functions for reading/writing images as arrays of pixels. Netpbm2Gimp reimplements those functions in terms of GIMP/GTK+ functions, thereby hiding much of the complexity of plug-in development. With Netpbm2Gimp, plug-in developers needn't worry about registering plug-ins with the GIMP core, displaying dialog boxes to request input from the user, displaying dialog boxes to present the user with status or error information, handling noninteractive usage (for the GIMP scripting interfaces), managing various GIMP data structures (images, layers, drawables, shadow buffers, the tile cache, etc.), updating the progress bar, controlling the undo stack, and performing the various other operations that are needed in the context of a graphical user interface. All of those features are handled automatically by Netpbm2Gimp.

For non-programmers, the second package I released, gimp-netpbm2gimp-plugins, is a collection of over 200 GIMP plug-ins produced by running the source code of the Netpbm graphics filters through Netpbm2Gimp. (Think "GIMP" where the Netpbm graphics filter documentation says "PBM", "PGM", "PPM", "PNM", or "PAM".) There is a particular emphasis on load/save plug-ins for obscure graphics formats, but a number of miscellaneous image filters are included as well.

Both Netpbm2Gimp and gimp-netpbm2gimp-plugins are available for download from the Netpbm2Gimp home page:

Enjoy!

ANN: Netpbm2Gimp -- simplified GIMP plug-in development

Maybe a list or visual examples of what this plugins may do
(except for the conversion plugins,in that case is obvious)
will help.

As user i 'm a bit perplex by your description:
seems almost identical to that of GIMP#, MathMap,G'MIC, and
UserFilter, each claim to allow users to write easily its own plugins.

But then are often missed documentations and tutorials on HOW write "easily" a gimp plugin and that usually kill the new born.
(who want write "easily " a plugin usually strictly need a step to step guide in not too technical language.
If not he will be already writing plugin in C, C+ or in one of many scripting languages compatible with gimp)

And missed binary for Mac and Windows even lower chances of diffusions

ANN: Netpbm2Gimp -- simplified GIMP plug-in development

Good questions! The plug-ins that are included in the gimp-netpbm2gimp-plugins collection are derived from the Netpbm programs and take the same options. These (plus a few not included because of license restrictions or other reasons) are listed online in the Netpbm program directory. Unfortunately, that site doesn't include any visual examples, but it does provide detailed documentation for each program.

One differentiator between Netpbm2Gimp and the other projects you mention is the level of abstraction that each project presents. On a scale from most abstract (easiest to use but least flexible) to least abstract (hardest to use but most flexible), I'd rank the projects as follows:

  1. MathMap
  2. G'MIC
  3. Netpbm2Gimp
  4. GIMP#
  5. GIMP plus GTK+ libraries

UserFilter is similar in spirit to Netpbm2Gimp in that both take code designed for another purpose (PhotoShop plug-ins and Netpbm programs, respectively) and retarget it to the GIMP. In fact, I'd say that this is what makes Netpbm2Gimp interesting: A single source program, written in C with the Netpbm API, can either be compiled using Netpbm2Gimp to produce a GIMP plug-in or compiled using a C compiler and linked with the Netpbm library to produce a command-line program for use in a graphics pipeline:

cat mypicture.png | pngtopnm | pnmrotate 14 | mynewplugin --myoption=cool | pnminvert | pnmtotiff > mypicture.tiff

The netpbm2gimp manual presents a simple Netpbm2Gimp program. (Scroll down to the "Usage" section.) Hopefully, that should give you a quick taste of what the Netpbm API is like. The basic concept is to read pixels from a file into an array, modify the array, and write the array back to a file. Because the language is still C, Netpbm2Gimp-produced plug-ins should run no slower—and will probably run faster—than plug-ins produced by the other systems you mentioned.

Mac and Windows versions would be great to have. Volunteers to port/test either would be much appreciated.

ANN: Netpbm2Gimp -- simplified GIMP plug-in development

I hope i may help for Windows, i must see if a friend may take care of the build then , if that successful i may do some testing.

i can't help for Mac sorry

ANN: Netpbm2Gimp -- simplified GIMP plug-in development

Sounds good. My email address is at the bottom of the Netpbm2Gimp home page (http://netpbm2gimp.sourceforge.net/).

Netpbm2Gimp -- simplified GIMP plug-in development

PS
i just notice that you do not add the plugin to the plugin Registry, instead, i suppose by mistake you just posted the new on the forum.

Anyway mine do not want be criticism, just suggestions

Netpbm2Gimp -- simplified GIMP plug-in development

I wasn't sure what the right thing to do is. Netpbm2Gimp itself isn't a plug-in but rather a mechanism for producing plug-ins. gimp-netpbm2gimp-plugins isn't a single plug-in but a collection of plug-ins. The gzip'd tarball of Linux/x86 binaries is over 16MB, which I felt was a bit excessive to post here. The 200+ individual plug-ins (~180KB apiece) would be pretty tedious both to post and to download. The gimp-netpbm2gimp-plugins source code is reasonable to post but requires the Netpbm source to build.

One can already download sources and binaries for both Netpbm2Gimp and gimp-netpbm2gimp-plugins from SourceForge.net so I had figured that posting a pointer to the Netpbm2Gimp home page would be good enough for most people.

What do you recommend?

Netpbm2Gimp -- simplified GIMP plug-in development

I suggest to post in the plugin list as the other plugin hosted here

"Netpbm2Gimp itself isn't a plug-in but rather a mechanism for producing plug-ins. gimp-netpbm2gimp-plugins isn't a single plug-in but a collection of plug-ins."

This is not so unusual...also G'MIC, and The UserFilter are a mechanism to produce plugin , with included numerous examples of plugin.

then is NOT strictly needed you upload the files here (even if usually is preferred ) just is needed to post the download link.

About uploading here i do not know if there is a limit for file size...in case you want pack together Netpbm2Gimp and the 200 plugin i have a resources gallery on DA and my limit is 30MB for each Upload
(in case you may need send me a PM ,
anyway DA is mostly a art gallery even if allow to upload scripts and programs)

BUT again is sufficient post a Link

Netpbm2Gimp -- simplified GIMP plug-in development

Done. I posted a description of gimp-netpbm2gimp-plugins and Netpbm2Gimp and included a link to the Netpbm2Gimp home page.