|
JIU 0.14.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.jiu.ops.Operation
net.sourceforge.jiu.ops.ImageToImageOperation
net.sourceforge.jiu.color.dithering.ClusteredDotDither
public class ClusteredDotDither
Apply a clustered dot ordered dither to a grayscale image, converting
it to a bilevel image in the process.
Works with GrayIntegerImage
objects
as input and BilevelImage
objects
as output.
Resolution of both must be the same.
Use one of the predefined dither matrices or have one compiled from
a spot function (given by an object of a class implementing
SpotFunction
).
There are a couple of classes implementing that spot function interface
in the dithering package.
If no matrix is specified, process()
creates a default matrix
by calling setOrder3DitherMatrix()
.
ClusteredDotDither dither = new ClusteredDotDither(); dither.setInputImage(image); // some GrayIntegerImage dither.setDitherMatrix(8, 8, new DiamondSpotFunction()); dither.process(); PixelImage ditheredImage = dither.getOutputImage();
pgmtopbm
program (the matrices are stored in the
file dithers.h
).
I learned about spot functions and their use from Austin Donnelly's GIMP plugin newsprint - it has extensive comments, and the newsprint website explains the theoretical background.
Constructor Summary | |
---|---|
ClusteredDotDither()
|
Method Summary | |
---|---|
void |
process()
This method does the actual work of the operation. |
void |
setDitherMatrix(int width,
int height,
int[] data)
Sets the dither matrix to be used in this operation. |
void |
setDitherMatrix(int width,
int height,
SpotFunction f)
Creates and sets a dither matrix of user-defined size and compiles it from a spot function. |
void |
setOrder3DitherMatrix()
Sets a 6 times 6 elements matrix to be used for dithering. |
void |
setOrder4DitherMatrix()
Sets an 8 times 8 elements matrix to be used for dithering. |
void |
setOrder8DitherMatrix()
Sets a 16 times 16 elements matrix to be used for dithering. |
Methods inherited from class net.sourceforge.jiu.ops.ImageToImageOperation |
---|
canInputAndOutputBeEqual, ensureImagesHaveSameResolution, ensureInputImageIsAvailable, ensureOutputImageResolution, getInputImage, getOutputImage, setCanInputAndOutputBeEqual, setInputImage, setOutputImage |
Methods inherited from class net.sourceforge.jiu.ops.Operation |
---|
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public ClusteredDotDither()
Method Detail |
---|
public void process() throws MissingParameterException, WrongParameterException
Operation
process
in class Operation
MissingParameterException
- if any mandatory parameter was not given to the operation
WrongParameterException
- if at least one of the input parameters was
not initialized appropriately (values out of the valid interval, etc.)public void setDitherMatrix(int width, int height, int[] data)
width
- number of entries in horizontal directionheight
- number of entries in vertical directiondata
- matrix entries, in order top to bottom, and in each row left to right
IllegalArgumentException
- if width or height are smaller than one or data
is null
or has not at least width times height entriespublic void setDitherMatrix(int width, int height, SpotFunction f)
setDitherMatrix(int, int, int[])
.
width
- width of matrix, must be one or largerheight
- height of matrix, must be one or largerf
- the spot function to be used for compiling the matrixpublic void setOrder3DitherMatrix()
public void setOrder4DitherMatrix()
public void setOrder8DitherMatrix()
|
JIU 0.14.3 | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |