net.sourceforge.jiu.color.reduction
Class AutoDetectColorType
public class AutoDetectColorType
Detects the minimum (in terms of memory) color type of an image.
Can convert the original image to that new input type on demand.
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)).
Usage example
This code snippet loads an image and attempts to reduce it to the
minimum color type that will hold it.
PixelImage image = ImageLoader.load("test.bmp");
AutoDetectColorType op = new AutoDetectColorType();
op.setInputImage(image);
op.process();
if (op.isReducible())
{
image = op.getOutputImage();
}
AutoDetectColorType() - This constructor creates two internal empty lists for progress listeners and parameters.
|
TYPE_BILEVEL
public static final int TYPE_BILEVEL
TYPE_GRAY16
public static final int TYPE_GRAY16
TYPE_GRAY8
public static final int TYPE_GRAY8
TYPE_PALETTED8
public static final int TYPE_PALETTED8
TYPE_RGB24
public static final int TYPE_RGB24
TYPE_RGB48
public static final int TYPE_RGB48
TYPE_UNKNOWN
public static final int TYPE_UNKNOWN
doConvert
private boolean doConvert
AutoDetectColorType
public AutoDetectColorType()
This constructor creates two internal empty lists for progress listeners and parameters.
createBilevelFromGrayOrRgb
private void createBilevelFromGrayOrRgb(IntegerImage in)
Creates a bilevel image from any grayscale (or RGB) image
that has been checked to be bilevel.
createBilevelFromPaletted
private void createBilevelFromPaletted(Paletted8Image in)
createGray8FromGray16
private void createGray8FromGray16(Gray16Image in)
createPaletted8FromRgb24
private void createPaletted8FromRgb24(RGB24Image in)
createPaletted8FromRgb48
private void createPaletted8FromRgb48(RGB48Image in)
getOutputImage
public PixelImage getOutputImage()
Returns the reduced output image if one was created in
process()
.
- newly-created output image
getType
public int getType()
Returns the type of the minimum image type found (one of the TYPE_xyz constants
of this class).
Can only be called after a successful call to process.
isGray16Gray8
private boolean isGray16Gray8(Gray16Image in)
isReducible
public 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.
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()
.
- if image was found to be reducible in process()
isRgb24Paletted8
private boolean isRgb24Paletted8(RGB24Image in)
isRgb48Gray8
private boolean isRgb48Gray8(RGB48Image in)
isRgb48Paletted8
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.
in
- input image to be checked
- if this image can be losslessly converted to a Paletted8Image
isRgb48Rgb24
private boolean isRgb48Rgb24(RGB48Image in)
isRgbGray
private boolean isRgbGray(RGBIntegerImage in)
Returns if the input RGB image can be losslessly converted to
a grayscale image.
in
- RGB image to be checked
- true if input is gray, false otherwise
setConversion
public 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.
The default value is true
.
If this is set to false
, it can still be
convert
- if true, the conversion will be performed
setInputImage
public void setInputImage(PixelImage image)
This method must be used to specify the mandatory input image.
image
- PixelImage object to be examined