public class ImageMath
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static float |
HALF_PI
The value of half pi as a float.
|
static float |
PI
The value of pi as a float.
|
static float |
QUARTER_PI
The value of quarter pi as a float.
|
static float |
TWO_PI
The value of two pi as a float.
|
Constructor and Description |
---|
ImageMath() |
Modifier and Type | Method and Description |
---|---|
static float |
bias(float a,
float b)
Apply a bias to a number in the unit interval, moving numbers towards 0 or 1
according to the bias parameter.
|
static int |
bilinearInterpolate(float x,
float y,
int nw,
int ne,
int sw,
int se)
Bilinear interpolation of ARGB values.
|
static int |
brightnessNTSC(int rgb)
Return the NTSC gray level of an RGB value.
|
static float |
circleDown(float x)
A "circle down" function.
|
static float |
circleUp(float x)
A "circle up" function.
|
static float |
clamp(float x,
float a,
float b)
Clamp a value to an interval.
|
static int |
clamp(int x,
int a,
int b)
Clamp a value to an interval.
|
static int |
colorSpline(float x,
int numKnots,
int[] knots)
Compute a Catmull-Rom spline for RGB values.
|
static int |
colorSpline(int x,
int numKnots,
int[] xknots,
int[] yknots)
Compute a Catmull-Rom spline for RGB values, but with variable knot spacing.
|
static float |
gain(float a,
float b)
A variant of the gamma function.
|
static float |
lerp(float t,
float a,
float b)
Linear interpolation.
|
static int |
lerp(float t,
int a,
int b)
Linear interpolation.
|
static int |
mixColors(float t,
int rgb1,
int rgb2)
Linear interpolation of ARGB values.
|
static double |
mod(double a,
double b)
Return a mod b.
|
static float |
mod(float a,
float b)
Return a mod b.
|
static int |
mod(int a,
int b)
Return a mod b.
|
static void |
premultiply(int[] p,
int offset,
int length)
Premultiply a block of pixels.
|
static float |
pulse(float a,
float b,
float x)
The pulse function.
|
static void |
resample(int[] source,
int[] dest,
int length,
int offset,
int stride,
float[] out)
An implementation of Fant's resampling algorithm.
|
static float |
smoothPulse(float a1,
float a2,
float b1,
float b2,
float x)
A smoothed pulse function.
|
static float |
smoothStep(float a,
float b,
float x)
A smoothed step function.
|
static float |
spline(float x,
int numKnots,
float[] knots)
Compute a Catmull-Rom spline.
|
static float |
spline(float x,
int numKnots,
int[] xknots,
int[] yknots)
Compute a Catmull-Rom spline, but with variable knot spacing.
|
static float |
step(float a,
float x)
The step function.
|
static float |
triangle(float x)
The triangle function.
|
static void |
unpremultiply(int[] p,
int offset,
int length)
Unpremultiply a block of pixels
|
public static final float PI
public static final float HALF_PI
public static final float QUARTER_PI
public static final float TWO_PI
public static float bias(float a, float b)
a
- the number to biasb
- the bias parameter. 0.5 means no change, smaller values bias towards 0, larger towards 1.public static float gain(float a, float b)
a
- the number to apply gain tob
- the gain parameter. 0.5 means no change, smaller values reduce gain, larger values increase gain.public static float step(float a, float x)
a
- the threshold positionx
- the input parameterpublic static float pulse(float a, float b, float x)
a
- the lower threshold positionb
- the upper threshold positionx
- the input parameterpublic static float smoothPulse(float a1, float a2, float b1, float b2, float x)
a1
- the lower threshold position for the start of the pulsea2
- the upper threshold position for the start of the pulseb1
- the lower threshold position for the end of the pulseb2
- the upper threshold position for the end of the pulsex
- the input parameterpublic static float smoothStep(float a, float b, float x)
a
- the lower threshold positionb
- the upper threshold positionx
- the input parameterpublic static float circleUp(float x)
x
- the input parameter in the range 0..1public static float circleDown(float x)
x
- the input parameter in the range 0..1public static float clamp(float x, float a, float b)
a
- the lower clamp thresholdb
- the upper clamp thresholdx
- the input parameterpublic static int clamp(int x, int a, int b)
a
- the lower clamp thresholdb
- the upper clamp thresholdx
- the input parameterpublic static double mod(double a, double b)
a
- the dividendb
- the divisorpublic static float mod(float a, float b)
a
- the dividendb
- the divisorpublic static int mod(int a, int b)
a
- the dividendb
- the divisorpublic static float triangle(float x)
x
- the input parameterpublic static float lerp(float t, float a, float b)
t
- the interpolation parametera
- the lower interpolation rangeb
- the upper interpolation rangepublic static int lerp(float t, int a, int b)
t
- the interpolation parametera
- the lower interpolation rangeb
- the upper interpolation rangepublic static int mixColors(float t, int rgb1, int rgb2)
t
- the interpolation parameterrgb1
- the lower interpolation rangergb2
- the upper interpolation rangepublic static int bilinearInterpolate(float x, float y, int nw, int ne, int sw, int se)
x
- the X interpolation parameter 0..1y
- the y interpolation parameter 0..1nw
- The ARGB northwest valuene
- The ARGB northeast valuesw
- The ARGB southwest valuese
- The ARGB southeast valuepublic static int brightnessNTSC(int rgb)
rgb
- the input pixelpublic static float spline(float x, int numKnots, float[] knots)
x
- the input parameternumKnots
- the number of knots in the splineknots
- the array of knotspublic static float spline(float x, int numKnots, int[] xknots, int[] yknots)
x
- the input parameternumKnots
- the number of knots in the splinexknots
- the array of knot x valuesyknots
- the array of knot y valuespublic static int colorSpline(float x, int numKnots, int[] knots)
x
- the input parameternumKnots
- the number of knots in the splineknots
- the array of knotspublic static int colorSpline(int x, int numKnots, int[] xknots, int[] yknots)
x
- the input parameternumKnots
- the number of knots in the splinexknots
- the array of knot x valuesyknots
- the array of knot y valuespublic static void resample(int[] source, int[] dest, int length, int offset, int stride, float[] out)
source
- the source pixelsdest
- the destination pixelslength
- the length of the scanline to resampleoffset
- the start offset into the arraysstride
- the offset between pixels in consecutive rowsout
- an array of output positions for each pixelpublic static void premultiply(int[] p, int offset, int length)
p
- The block of pixels.offset
- The starting pixel.length
- The number of pixels to premultiply.public static void unpremultiply(int[] p, int offset, int length)
p
- The block of pixels.offset
- The starting pixel.length
- The number of pixels to premultiply.