public class AutoDetectColorType extends Operation
Input parameters: image to be examined, boolean that specifies whether conversion will be performed (default is true, conversion is performed). Output parameters: converted image, boolean that expresses whether a conversion was possible.
Supported types for input image: RGB24Image, Gray8Image, Paletted8Image.
BilevelImage is not supported because there is no smaller image type, so bilevel images cannot be reduced.
This operation is not a ImageToImageOperation
because this
class need not necessarily produce a new image
(with setConversion(boolean)
(false)).
PixelImage image = ImageLoader.load("test.bmp"); AutoDetectColorType op = new AutoDetectColorType(); op.setInputImage(image); op.process(); if (op.isReducible()) { image = op.getOutputImage(); }
Modifier and Type | Field | Description |
---|---|---|
private boolean |
doConvert |
|
private Histogram3D |
hist |
|
private PixelImage |
inputImage |
|
private PixelImage |
outputImage |
|
private int |
type |
|
static int |
TYPE_BILEVEL |
|
static int |
TYPE_GRAY16 |
|
static int |
TYPE_GRAY8 |
|
static int |
TYPE_PALETTED8 |
|
static int |
TYPE_RGB24 |
|
static int |
TYPE_RGB48 |
|
static int |
TYPE_UNKNOWN |
Constructor | Description |
---|---|
AutoDetectColorType() |
Modifier and Type | Method | Description |
---|---|---|
private void |
createBilevelFromGrayOrRgb(IntegerImage in) |
Creates a bilevel image from any grayscale (or RGB) image
that has been checked to be bilevel.
|
private void |
createBilevelFromPaletted(Paletted8Image in) |
|
private void |
createGray8FromGray16(Gray16Image in) |
|
private void |
createGray8FromPaletted8(Paletted8Image in,
Gray8Image out) |
|
private void |
createGrayFromRgb(IntegerImage in,
IntegerImage out) |
|
private void |
createPaletted8FromRgb24(RGB24Image in) |
|
private void |
createPaletted8FromRgb48(RGB48Image in) |
|
private void |
createRgb24FromRgb48(RGB48Image in,
RGB24Image out) |
|
PixelImage |
getOutputImage() |
Returns the reduced output image if one was created in
process() . |
int |
getType() |
Returns the type of the minimum image type found (one of the TYPE_xyz constants
of this class).
|
private boolean |
isGray16Gray8(Gray16Image in) |
|
private boolean |
isGrayBilevel(IntegerImage in) |
|
boolean |
isReducible() |
This method can be called after
process() to find out if the input
image in fact can be reduced to a "smaller" image type. |
private boolean |
isRgb24Paletted8(RGB24Image in) |
|
private boolean |
isRgb48Gray8(RGB48Image in) |
|
private boolean |
isRgb48Paletted8(RGB48Image in) |
Assumes that it has already been verified that the input 48 bpp
RGB image is also a 24 bpp RGB image.
|
private boolean |
isRgb48Rgb24(RGB48Image in) |
|
private boolean |
isRgbBilevel(IntegerImage in) |
|
private boolean |
isRgbGray(RGBIntegerImage in) |
Returns if the input RGB image can be losslessly converted to
a grayscale image.
|
void |
process() |
This method does the actual work of the operation.
|
void |
setConversion(boolean convert) |
This method can be used to specify whether the input image is to be converted
to the minimum image type if it is clear that such a conversion is possible.
|
void |
setInputImage(PixelImage image) |
This method must be used to specify the mandatory input image.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addProgressListener, addProgressListeners, getAbort, removeProgressListener, setAbort, setProgress, setProgress
public static final int TYPE_UNKNOWN
public static final int TYPE_BILEVEL
public static final int TYPE_GRAY16
public static final int TYPE_GRAY8
public static final int TYPE_PALETTED8
public static final int TYPE_RGB24
public static final int TYPE_RGB48
private PixelImage inputImage
private PixelImage outputImage
private boolean doConvert
private int type
private Histogram3D hist
private void createBilevelFromGrayOrRgb(IntegerImage in)
private void createBilevelFromPaletted(Paletted8Image in)
private void createGrayFromRgb(IntegerImage in, IntegerImage out)
private void createGray8FromGray16(Gray16Image in)
private void createGray8FromPaletted8(Paletted8Image in, Gray8Image out)
private void createPaletted8FromRgb24(RGB24Image in)
private void createPaletted8FromRgb48(RGB48Image in)
private void createRgb24FromRgb48(RGB48Image in, RGB24Image out)
public PixelImage getOutputImage()
process()
.public int getType()
public boolean isReducible()
process()
to find out if the input
image in fact can be reduced to a "smaller" image type.
If this method returns true
and if conversion was desired by the
user (can be specified via setConversion(boolean)
), the reduced image can
be retrieved via getOutputImage()
.private boolean isGrayBilevel(IntegerImage in)
private boolean isGray16Gray8(Gray16Image in)
private boolean isRgb48Gray8(RGB48Image in)
private boolean isRgb48Paletted8(RGB48Image in)
in
- input image to be checkedprivate boolean isRgb48Rgb24(RGB48Image in)
private boolean isRgbBilevel(IntegerImage in)
private boolean isRgbGray(RGBIntegerImage in)
in
- RGB image to be checkedprivate boolean isRgb24Paletted8(RGB24Image in)
public void process() throws MissingParameterException, WrongParameterException
Operation
process
in class Operation
MissingParameterException
- if any mandatory parameter was not given to the operationWrongParameterException
- if at least one of the input parameters was
not initialized appropriately (values out of the valid interval, etc.)public void setConversion(boolean convert)
true
.
If this is set to false
, it can still beconvert
- if true, the conversion will be performedpublic void setInputImage(PixelImage image)
image
- PixelImage object to be examined