Here are the plug-ins I have written for the GIMP.
This plug-in combines the functions of the old Whirl and Pinch
plug-ins. It distorts the image by whirling and pinching, which are
two common center-based, circular distortions. Whirling is like
projecting the image onto the surface of water in a toilet and
flushing. Pinching is similar to projecting the image onto an elastic
surface and pressing or pulling on the center of the surface.
Get the source code: whirlpinch.c
Fossil: here are the old sources for Whirl and Pinch for the GIMP 0.54.
This plug-in uses the algorithm described by John Schlag, ``Fast
Embossing Effects on Raster Image Data'' in Graphics Gems IV
(ISBN 0-12-336155-9). It takes an image to be applied as a bump map
to another image, producing a nice embossing effect.
Get the source code: bumpmap.c
Fossil: here is the old source code for Bumpmap for the GIMP 0.54.
This simple plug-in does an automatic contrast stretch. For each
channel in the image, it finds the minimum and maximum values, and
uses that information to stretch the individual channels' histograms
to the full contrast range. For some images it may do just what you
want; for others it may be total crap. If the latter, you may want to
consider using the Normalize plug-in by Adam Moss.
Get the source code: c_astretch.c
When an image is taken from a video capture source (f.i. a
freeze-frame), sometimes only either the odd or the even fields in the
frame get captured, resulting in an image which, line by line, is
data-black-data-black-etc. This plug-in does a simple interpolation
between the odd or even fields in an image to correct this.
Get the source code: deinterlace.c
This plug-in does a simple linear interpolation between two images.
However, it does not constrain the blending factor to be in [0, 1].
By using values outside that range, you can perform more interesting
extrapolations among images. For examples on how to use this sort of
plug-in, check the Grafica Obscura
pages. As an interesting example, below is shown a color image and
its grayscale version. Extrapolating `away' from the grayscale image
leads to an image with increased saturation.
Get the source code: interpolate.c
This plug-in does the well-known `page curl' effect. It is like when
you curl one of the corners of a sheet of paper.
Get the source code: pagecurl.c
Simon Budig has been kind
enough to port the Page Curl plug-in to version 0.99.x of the GIMP.
You can get it
here. Thanks, Simon!
This plug-in does a histogram equalization of the image. That is, it
modifies the image's histogram so that it is approximately horizontal,
so that all intensity values cover about the same number of pixels in
the image (i.e. the histogram is well-balanced).
Get the source code: equalize.c
This plug-in creates diffraction patterns. It uses the algorithms
which David Bleecker
very kindly mailed to me. It is still incomplete (and *slow*!), but
it seems to work fine.
Get the source code: diffraction.c
Here is a preliminary screenshot.
Whirlpinch 2.09 1997/05/14
Bumpmap 2.04 1997/08/24
Contrast Autostretch 1.04 1996/05/23
De-interlace 1.01 1996/05/06
Interpolate/Extrapolate 1.01 1996/05/23
Page Curl 0.5 1996/06/05
Equalize 1.00 1996/11/21
Diffraction 0.5 1997/04/08
Send comments, bug reports, and other stuff to federico@nuclecu.unam.mx
That's Federico
Mena-Quintero.
This page last updated: 1998/03/19 13:35:22