Package org.geotools.image.palette
Class CustomPaletteBuilder
- Object
-
- CustomPaletteBuilder
-
public final class CustomPaletteBuilder extends Object
This class implements the octree quantization method as it is described in the "Graphics Gems" (ISBN 0-12-286166-3, Chapter 4, pages 297-293)- Author:
- Simone Giannecchini - GeoSolutions
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected classCustomPaletteBuilder.ColorNodeThe node of color tree.
-
Field Summary
Fields Modifier and Type Field Description protected intalphaThresholdprotected intcurrLevelprotected intcurrSizestatic intDEFAULT_ALPHA_THDefault value for the threshold to decide whether a pixel is opaque (>=) or transparent (<).protected intmaxLevelmaximum of tree depthprotected intmaxNodesprotected intnumBandsprotected intnumNodesprotected CustomPaletteBuilder.ColorNode[]paletteprotected CustomPaletteBuilder.ColorNode[]reduceListprotected intrequiredSizeprotected CustomPaletteBuilder.ColorNoderootprotected RenderedImagesrcprotected ColorModelsrcColorModelprotected intsubsampleXprotected intsubsampleyprotected CustomPaletteBuilder.ColorNodetransColorprotected inttransparency
-
Constructor Summary
Constructors Constructor Description CustomPaletteBuilder(RenderedImage src)CustomPaletteBuilder(RenderedImage src, int size, int subsx, int subsy, int alpha_th)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CustomPaletteBuilderbuildPalette()static booleancanCreatePalette(RenderedImage image)Returnstrueif PaletteBuilder is able to create palette for given rendered image.static booleancanCreatePalette(ImageTypeSpecifier type)Returnstrueif PaletteBuilder is able to create palette for given image type.protected intfindColorIndex(CustomPaletteBuilder.ColorNode aNode, int[] rgba, int transpBand)intfindNearestColorIndex(int[] rgba, int transparentBand)protected intfindPaletteEntry(CustomPaletteBuilder.ColorNode aNode, int index, byte[] red, byte[] green, byte[] blue)protected CustomPaletteBuilder.ColorNodefreeTree(CustomPaletteBuilder.ColorNode aNode)protected intgetBranchIndex(int[] rgba, int aLevel)IndexColorModelgetIndexColorModel()RenderedImagegetIndexedImage()protected CustomPaletteBuilder.ColorNodeinsertNode(CustomPaletteBuilder.ColorNode aNode, int[] rgba, int aLevel)protected voidreduceTree()
-
-
-
Field Detail
-
DEFAULT_ALPHA_TH
public static final int DEFAULT_ALPHA_TH
Default value for the threshold to decide whether a pixel is opaque (>=) or transparent (<). Default is 1 to try to preserve antialising- See Also:
- Constant Field Values
-
maxLevel
protected int maxLevel
maximum of tree depth
-
src
protected RenderedImage src
-
srcColorModel
protected ColorModel srcColorModel
-
requiredSize
protected int requiredSize
-
root
protected CustomPaletteBuilder.ColorNode root
-
numNodes
protected int numNodes
-
maxNodes
protected int maxNodes
-
currLevel
protected int currLevel
-
currSize
protected int currSize
-
reduceList
protected CustomPaletteBuilder.ColorNode[] reduceList
-
palette
protected CustomPaletteBuilder.ColorNode[] palette
-
transparency
protected int transparency
-
transColor
protected CustomPaletteBuilder.ColorNode transColor
-
subsampleX
protected int subsampleX
-
subsampley
protected int subsampley
-
numBands
protected int numBands
-
alphaThreshold
protected int alphaThreshold
-
-
Constructor Detail
-
CustomPaletteBuilder
public CustomPaletteBuilder(RenderedImage src)
-
CustomPaletteBuilder
public CustomPaletteBuilder(RenderedImage src, int size, int subsx, int subsy, int alpha_th)
-
-
Method Detail
-
canCreatePalette
public static boolean canCreatePalette(ImageTypeSpecifier type)
Returnstrueif PaletteBuilder is able to create palette for given image type.- Parameters:
type- an instance ofImageTypeSpecifierto be indexed.- Returns:
trueif thePaletteBuilderis likely to be able to create palette for this image type.- Throws:
IllegalArgumentException- iftypeisnull.
-
canCreatePalette
public static boolean canCreatePalette(RenderedImage image)
Returnstrueif PaletteBuilder is able to create palette for given rendered image.- Parameters:
image- an instance ofRenderedImageto be indexed.- Returns:
trueif thePaletteBuilderis likely to be able to create palette for this image type.- Throws:
IllegalArgumentException- ifimageisnull.
-
getIndexedImage
public RenderedImage getIndexedImage()
-
findColorIndex
protected int findColorIndex(CustomPaletteBuilder.ColorNode aNode, int[] rgba, int transpBand)
-
buildPalette
public CustomPaletteBuilder buildPalette()
-
insertNode
protected CustomPaletteBuilder.ColorNode insertNode(CustomPaletteBuilder.ColorNode aNode, int[] rgba, int aLevel)
-
getIndexColorModel
public IndexColorModel getIndexColorModel()
-
findPaletteEntry
protected int findPaletteEntry(CustomPaletteBuilder.ColorNode aNode, int index, byte[] red, byte[] green, byte[] blue)
-
getBranchIndex
protected int getBranchIndex(int[] rgba, int aLevel)
-
reduceTree
protected void reduceTree()
-
freeTree
protected CustomPaletteBuilder.ColorNode freeTree(CustomPaletteBuilder.ColorNode aNode)
-
findNearestColorIndex
public int findNearestColorIndex(int[] rgba, int transparentBand)
-
-