Filters Unlimited and Filter Factory Language Reference
| Operator |
Definition |
| , |
Sequence. Evaluate left side, return right side |
| ?: |
Conditional if |
| &&, || |
Logical and, logical or |
| &, ^, | |
Bitwise and, bitwise exclusive or, bitwise or |
| ==, != |
Equal to, not equal to |
| <, <=, >, >= |
Less than, less than or equal to, greater than, greater than or equal to |
| <<, >> |
Bitwise shift left / shift right |
| *, /, % |
Multiply, divide, modulo |
| +, – |
Add, subtract |
| !, ~ |
Logical not, bitwise not |
| |
|
| Variable |
Definition |
| r, g, b |
Red, green, and blue channel values of the current pixel |
| a |
Alpha channel value of the current pixel (transparency) |
| c |
Value of the current channel (0 for r, 1 for g, 2 for b, 3 for a) |
| i, u, v |
Calculated channel values of the current pixel in YUV color space |
| x, y |
Coordinates of the current pixel |
| z |
Channel index of the current expression (0=r, 1=g, 2=b, 3=a) |
| d |
Direction (angle) of the current pixel from center of the image |
| m |
Distance (magnitude) from center of the image to the current pixel |
| X |
Range of horizontal coordinates over the width of the image |
| Y |
Range of vertical coordinates over the height of the image |
| Z |
Range of channel indexes within one pixel |
| D |
Range of angles within the image (1024 always) |
| M |
Range of magnitudes with the image |
| |
|
| Function |
Definition |
| src(x,y,z) |
Channel z for the pixel at coordinates x,y |
| rad(d,m,z) |
Channel z in the source image, m units away, at angle of d |
| ctl(i) |
Value of slider i, where i is an integer between 0 and 7, inclusive |
| val(i,a,b) |
Value of slider i, mapped onto the range a to b |
| min(a,b) |
Lesser of a and b |
| max(a,b) |
Greater of a and b |
| abs(a) |
Absolute value of a |
| add(a,b,c) |
Sum of a and b, or c, whichever is lesser |
| sub(a,b,c) |
Difference of a and b, or c, whichever is greater |
| dif(a,b) |
Absolute value of the difference of a and b |
| rnd(a,b) |
Random number between a and b, inclusive |
| mix(a,b,n,d) |
Mixture of a and b by fraction n/d, a*n/d+b*(d-n)/d |
| scl(a,il,ih,ol,oh) |
Scale a from input range (il to ih) to output range (ol to oh) |
| sqr(x) |
Square root of x |
| sin(x) |
Sine of x |
| cos(x) |
Cosine of x |
| tan(x) |
Tangent of x |
| r2x(d,m) |
x displacement of the pixel m units away, at an angle of d |
| r2y(d,m) |
y displacement of the pixel m units away, at an angle of d |
| c2d(x,y) |
Angle displacement of the pixel at coordinates x,y |
| c2m(x,y) |
Magnitude displacement of the pixel at coordinates x,y |
| get(i) |
Returns the current cell value at i |
| put(v,i) |
Puts the new value v into cell i |
| cnv(m11,m12, m13,m21, m22, m23,m31, m32, m33, d) |
Convolution kernel |
| |
|
| Filters Unlimited Extensions |
| rst(n) |
Random seed.
n = -1: Initialize with current system time. |
| sgn(n) |
sign of n. n<0:-1, n>0:+1, n==0:0 |
| srcmode(n) |
controls return values for access of pixels outside valid image
or bitmap region
n = 0 : edge replication (default if not explicitly set)
n = 1 : black (r = 0, g = 0, b = 0)
n = 2 : modulo image dimensions (x % X, y % Y)
n = 3 : modulo and mirror src(X+1, Y+1, z) => src(X-1, Y-1, z)
Use in “I-Section”only!
Example for the following code: src(x*2, y*2, z)
 |
| storage(n) |
set storage size ( put(0..n-1), get(0..n-1) )
n should never exceed 64000 elements
Use in “I-Section”only! |
| gamma(r,g,b) |
Setup gamma lookup tables.
r,g,b = 255 means gamma 1.0, r,g,b = 511 means gamma 2.0
Use in “I-Section”only! |
| gam(n, z) |
Lookup value in gamma table. n range 0..255, z range 0..2 |
| hmin(z) |
minimum value of channel z of the whole image |
| hmax(z) |
maximum value of channel z of the whole image |
| frg(z) |
current foreground color, channel z |
| bkg(z) |
current background color, channel z |
| icnv(m11, m12, m13, m21, m22, m23, m31, m32, m33, d) |
Intensity convolution kernel. Involves channel 0..2 |
| xycnv(x, y, m11, m12, m13, m21, m22, m23, m31, m32, m33, d) |
Convolution kernel at position x,y |
| i(x,y) |
Intensity at coordinate x,y |
| gradient(n) |
Select a gradient. n range 0..99
n = -1 activates the manual gradient selector
Use in “I-Section” only! |
| grad(n, z) |
Access gradient data. n range 0..255, z range 0..3 |
| bmap(n, x, y) |
Access built-in bitmaps:
n = 0: Cloud structure
n = 1: Complex cloud structure
n = 2: Wood structure 1
n = 3: Wood structure 2
n = 4: Stones
n = 5: Puzzle
x, y range: 0..255 (reacts also on srcmode(n)) |
| BX, BY |
Internal bitmap width/height |
| bmapsize(w,h) |
Resize internal bitmaps to w,h |
| cmap(x,y,z) |
Access to custom, loadable bitmap |
| cmapsize(w,h) |
Resize custom bitmap |
| CX, CY |
Custom bitmap width/height |
| sbd(x, y) |
Smallest border distance to current selection (rectangular) |
| case(n, c1:r1, ...) |
Case Expression. n gives the case, r1 returned if case c1 is true)
Examples:
case(rnd(0, 2), 0:sin(x), 1:cos(x), 2:tan(x))
case(val(0, 0, 3),
0: abs(get(0) + get(1)),
1: dif(get(0), get(1)),
2: min(get(0), get(1)),
3: max(get(0), get(1))
) |
| hue(n, z) |
Returns hue part n of channel z
n range 0..255 (should be 0..360 degrees)
z range 0..2 |
| tri(n) |
Works exactly like sin(x) but returns a triangular wave instead
of a sine wave |
| bell(n) |
Access to a gaussian bell curve.
n range 0..255
output range 0..1023 |
| med3(x,y,z) |
3x3 Median at position x,y channel z |
| nbd(x,y,n) |
Nearest Border
n = 0..1
Returns: 1 = left, 2 = top, 3 = right, 4=bottom, 0 = body |
| gblur(x,y,z,n) |
Gaussian blur at position x,y channel z radius n/10 |
| |
|
I.C.NET Software GmbH
Michael Johannhanwahr
Robert-Bunsen-Str. 70
28357 Bremen, Germany
Filters Unlimited is Copyright © 1999-2005 I.C.NET Software GmbH. All rights reserved.
Filter Factory is Copyright © Adobe® Systems, Inc.
back to features page
|