[ANN]: Imagedata Toolkit (beta) released

Wilhelm Sanke sanke at hrz.uni-kassel.de
Sat Sep 9 10:26:44 EDT 2006

I am out of home and office from today until Sept. 20th, which means I 
cannot respond to feedback or answer questions in the meantime.

The stack should run on any platform and with engine versions 2.5 or 
later; on platforms other than Windows other "apply" buttons can be used 
instead of the supplied Windows DLL "external.dll" (from Chipp Walters) 
- and even on Windows using button "apply scripted version" avoids the 
borders that are produced by repeated use of the DLL. The other "apply" 
scripts take about 7 seconds on a 2 GHz Windows machine.
I did not yet test the display of fonts which usually look somewhat 
different on MacOS.

If you get a warning when opening the stack in the Revolution IDE 
assuming "duplicate answer stacks" or the like, simply disregard this. I 
use a customized "answer dialog" from the Metacard IDE that allows for 
precise placing of the dialog anywhere in the stack area other than in 
the usual center.

As a start:

- go to btn "bidirectional gradients" (bottomleft of the card), choose 
"multidirectional gradient"
- choose "grainy emboss" from "emboss filters" and choose one "apply" button
- go to "duplicate colors" and choose "duplicate colors 3"; apply about 
3 times

You will get a multicolored shiny metallic surface. Using "duplicate 
colors 1" also works and applying this button 8 times will bring back 
the image you started from.

You can download the stack from pages "Image Filter Gallery" or "Sample 
Stacks" of <http://www.sanke.org/MetaMedia>  or directly from 
<http://www.sanke.org/Software/ImagedataToolkit.zip> (8 MB).


1. Restrictions

A help file will be available not before October.

The filters only apply to images with a size of  640X480; imported 
images will be resized to that format. A version for variable image 
sizes is under development and already working, but will probably not be 
offered as freeware.

The Windows DLL cannot be applied when "bias" (or "offset") values are 
used. A warning dialog will appear then.

Alphadata, maskdata, and the integration of "painted" graphics (like the 
one example in my "Image Filter Demo" stack) are not yet supported.

There is no "undo" function so far. This can partially be overcome by

- using one of the 7 sample images to test filter effects
- using the 4 slots on the left to store and retrieve images
- putting the image into the "back image" before processing and then 
retrieve it again (There are two images on top of each other as the 
basic arrangement: You can "toggle" the images or put the front into the 
back image or the other way round).
This two-image arrangement also is the prerequisite for the various 
options to "combine" the two images.

2. Matrix-3X3 Filters

- 6 kinds of filters (from the matrix settings ) are available:
"Sharpen" (4 filters including an "unsharp mask), "Emboss Filters" (14 
filters), "contours and edges" (4), "Soften" (4), "Lithography" (6), 
"Relief Filters" (5).
55 more are presently accessible under "user-defined 3x3 filters" among 
which a number of filters from web sites can be found.

There are two extra options to apply these filters:
"Apply Hybrid Filters" extends 3X3 matrices up to 11X11 matrix settings. 
This produces especially interesting effects when "contours" and 
"lithography" filters are selected.
"With R,G,B Choice" provides the option to apply the matrix filters with 
any combination of or with single R,G,B colors.

You can experiment with "user-defined filters", by either editing the 
cells of the matrix or by using a "random function". When using the 
"random" function the "division factor" is calculated at the same time 
to ensure a *brightness* that is more or less equivalent to the 
brightness of the original image. After changing cell values directly it 
is also useful to apply button "recalculate division factor". Changing 
the "division factor" results in brighter or darker images, which may of 
course be also interesting.
You can store and delete your "user-defined filters.

3. Matrix-5X5 Filters

The 5x5-matrix window is provided for experimentation. Applying the 
matrices is rather slow, about 20 seconds on my main computer. There is 
one very good filter, an "unsharp mask" filter I found in the web and 
which I recalculated also as a 3X3-matrix filter without any seeming 
loss of sharpness (see above).

4. Immediate Filters.

The majority of these filters (182 in all - with additional variations 
for most of them) are one-step filters (as opposed to the two steps 
"select" and "apply" of the matrix filters) and are usually very much 
faster - less than 2 and even less than 1 second for many of them. A few 
are slower, the slowest being the "Kuwahara full" filter with 27 seconds.

Many of these filters are adaptations from my "Colorpattern Toolkit" 
which used chars in fields instead of imagedata, others are newly 
developed, and some are reprogrammed-in-Revolution versions of findings 
from the net.
In the last category belong filters like "jitter" (button "add noise"), 
"b-contrast" (the variation "spread low tones" is especially useful to 
brighten dark parts of an image), "thresholds", and the area-filters 
"despeckle" and "Kuwahara". The codes for these filters were written in 
languages like Java and "Gluas"; there is an interesting "Gluas 
Gallery". I have added the original scripts of Gluas solutions in some 
of the button scripts. Gluas is used to write filters for "Gimp" and is 
a derivation of the programming language "Lua".
Especially the Kuwahara filter, which produces painting-like images, is 
an example for the possibilities and the limitations of the Revolution 
language at the same time because the execution of the script for some 
million of imagedata chars takes its time. I have provided an option 
"Kuwahara light", which is much faster, but which needs to be applied 
togeher with the "despeckle" filter to achieve good results.
Maybe the Gluas language could be used to develop externals for 
Revolution, too?

One type of filters, the 15 "stretch", "multiply segments", and 
"mirrored segment" filters, uses a transparent graphic that can be 
dragged within the rect of the image to select a part of the image for 
processing. I especially like the "mirrored segments" filter that 
produces interesting and unpredictable "seamless within" pictures from 
any image.

Some of the remaining filters: "gray values", several "sepia" filters, 
adding "gradient overlays" of selected colors, "saturation", 
"pastellizing", "brighten/darken",
"reduce colors" to 4096, 512, 125, 64, 27, and 8 colors, various kinds 
of  "swap colors" (negative, rotating, substituting etc.), "max-med-min" 
experiments, a number of horizontal, vertical, and diagonal mirrors, 
"flip and turn" flipping and turning the image horizontally, vertically, 
and  90 degrees, "skew", "shift", and "shrink" for other spatial 
deformations, "refractions" to produce a series of decreasing images 
inside the image, "glassy reflections" with various density options, 
"gradients", "plain transition", and "random" transitions as producing 
various kinds of transitions  - with variable gradient segments 
appearing in the picture at the same time when "random" is used here.

Also a  number of buttons to create "primary color patterns" for further 
manipulation by the described "secondary filters, and "finetuning" 
colors by influencing the color values of an image either separately for 
the RGB portions or combined.

And last but not least, there is an option to produce "picture borders" 
of variable sizes where the frame colors are selected from within the 
picture with a draggable graphic.-

Seven sample images are provided that are of different color and 
structure and which react differently especially when matrix filters are 


--Wilhelm Sanke

More information about the Use-livecode mailing list