You are here

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!

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

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

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?

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

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

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.

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

Sounds good. My email address is at the bottom of the Netpbm2Gimp home page (http://netpbm2gimp.sourceforge.net/).
Subscribe to Comments for "ANN: Netpbm2Gimp -- simplified GIMP plug-in development"