org.exoplatform.imageio.plugins.common
Class PaletteBuilder

java.lang.Object
  extended by org.exoplatform.imageio.plugins.common.PaletteBuilder

public class PaletteBuilder
extends Object

version: openjdk-7-ea-src-b35-11_sep_2008 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)


Nested Class Summary
protected  class PaletteBuilder.ColorNode
          The node of color tree.
 
Field Summary
protected  int currLevel
           
protected  int currSize
           
protected static int MAXLEVEL
          maximum of tree depth
protected  int maxNodes
           
protected  int numNodes
           
protected  PaletteBuilder.ColorNode[] palette
           
protected  PaletteBuilder.ColorNode[] reduceList
           
protected  int requiredSize
           
protected  PaletteBuilder.ColorNode root
           
protected  RenderedImage src
           
protected  ColorModel srcColorModel
           
protected  Raster srcRaster
           
protected  PaletteBuilder.ColorNode transColor
           
protected  int transparency
           
 
Constructor Summary
protected PaletteBuilder(RenderedImage src)
           
protected PaletteBuilder(RenderedImage src, int size)
           
 
Method Summary
protected  void buildPalette()
           
static boolean canCreatePalette(ImageTypeSpecifier type)
          Returns true if PaletteBuilder is able to create palette for given image type.
static boolean canCreatePalette(RenderedImage image)
          Returns true if PaletteBuilder is able to create palette for given rendered image.
static IndexColorModel createIndexColorModel(RenderedImage img)
          Creates an palette representing colors from given image img.
static RenderedImage createIndexedImage(RenderedImage src)
          Creates an image representing given image src using IndexColorModel.
protected  int findColorIndex(PaletteBuilder.ColorNode aNode, Color aColor)
           
protected  int findPaletteEntry(PaletteBuilder.ColorNode aNode, int index, byte[] red, byte[] green, byte[] blue)
           
protected  PaletteBuilder.ColorNode freeTree(PaletteBuilder.ColorNode aNode)
           
protected  int getBranchIndex(Color aColor, int aLevel)
           
protected  IndexColorModel getIndexColorModel()
           
protected  RenderedImage getIndexedImage()
           
protected  PaletteBuilder.ColorNode insertNode(PaletteBuilder.ColorNode aNode, Color aColor, int aLevel)
           
protected  void reduceTree()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAXLEVEL

protected static final int MAXLEVEL
maximum of tree depth

See Also:
Constant Field Values

src

protected RenderedImage src

srcColorModel

protected ColorModel srcColorModel

srcRaster

protected Raster srcRaster

requiredSize

protected int requiredSize

root

protected PaletteBuilder.ColorNode root

numNodes

protected int numNodes

maxNodes

protected int maxNodes

currLevel

protected int currLevel

currSize

protected int currSize

reduceList

protected PaletteBuilder.ColorNode[] reduceList

palette

protected PaletteBuilder.ColorNode[] palette

transparency

protected int transparency

transColor

protected PaletteBuilder.ColorNode transColor
Constructor Detail

PaletteBuilder

protected PaletteBuilder(RenderedImage src)

PaletteBuilder

protected PaletteBuilder(RenderedImage src,
                         int size)
Method Detail

createIndexedImage

public static RenderedImage createIndexedImage(RenderedImage src)
Creates an image representing given image src using IndexColorModel. Lossless conversion is not always possible (e.g. if number of colors in the given image exceeds maximum palette size). Result image then is an approximation constructed by octree quantization method.

Throws:
IllegalArgumentException - if src is null.
UnsupportedOperationException - if implemented method is unable to create approximation of src and canCreatePalette returns false.
See Also:
createIndexColorModel, canCreatePalette

createIndexColorModel

public static IndexColorModel createIndexColorModel(RenderedImage img)
Creates an palette representing colors from given image img. If number of colors in the given image exceeds maximum palette size closest colors would be merged.

Throws:
IllegalArgumentException - if img is null.
UnsupportedOperationException - if implemented method is unable to create approximation of img and canCreatePalette returns false.
See Also:
createIndexedImage, canCreatePalette

canCreatePalette

public static boolean canCreatePalette(ImageTypeSpecifier type)
Returns true if PaletteBuilder is able to create palette for given image type.

Parameters:
type - an instance of ImageTypeSpecifier to be indexed.
Returns:
true if the PaletteBuilder is likely to be able to create palette for this image type.
Throws:
IllegalArgumentException - if type is null.

canCreatePalette

public static boolean canCreatePalette(RenderedImage image)
Returns true if PaletteBuilder is able to create palette for given rendered image.

Parameters:
image - an instance of RenderedImage to be indexed.
Returns:
true if the PaletteBuilder is likely to be able to create palette for this image type.
Throws:
IllegalArgumentException - if image is null.

getIndexedImage

protected RenderedImage getIndexedImage()

findColorIndex

protected int findColorIndex(PaletteBuilder.ColorNode aNode,
                             Color aColor)

buildPalette

protected void buildPalette()

insertNode

protected PaletteBuilder.ColorNode insertNode(PaletteBuilder.ColorNode aNode,
                                              Color aColor,
                                              int aLevel)

getIndexColorModel

protected IndexColorModel getIndexColorModel()

findPaletteEntry

protected int findPaletteEntry(PaletteBuilder.ColorNode aNode,
                               int index,
                               byte[] red,
                               byte[] green,
                               byte[] blue)

getBranchIndex

protected int getBranchIndex(Color aColor,
                             int aLevel)

reduceTree

protected void reduceTree()

freeTree

protected PaletteBuilder.ColorNode freeTree(PaletteBuilder.ColorNode aNode)


Copyright © 2003-2013 eXo Platform SAS. All Rights Reserved.