Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

gnu.java.awt.color
Class ColorLookUpTable  view ColorLookUpTable download ColorLookUpTable.java

java.lang.Object
  extended bygnu.java.awt.color.ColorLookUpTable

public class ColorLookUpTable
extends java.lang.Object

ColorLookUpTable handles color lookups through a color lookup table, as defined in the ICC specification. Both 'mft2' and 'mft1' (8 and 16-bit) type CLUTs are handled. This will have to be updated later for ICC 4.0.0


Field Summary
(package private)  double[] clut
           
private static float[] D50
          CIE 1931 D50 white point (in Lab coordinates)
(package private)  int gridpoints
           
(package private)  float[][] inMatrix
           
(package private)  boolean inputLab
           
(package private)  double[][] inTable
           
(package private)  int[] multiplier
           
(package private)  int nClut
           
(package private)  int nIn
          Number of input/output channels
(package private)  int nInTableEntries
           
(package private)  int nOut
          Number of input/output channels
(package private)  int nOutTableEntries
           
(package private)  int[] offsets
           
(package private)  boolean outputLab
           
(package private)  short[][] outTable
           
(package private)  boolean useMatrix
           
 
Constructor Summary
ColorLookUpTable(java.awt.color.ICC_Profile profile, int tag)
          Constructor Requires a profile file to get the CLUT from and the tag of the CLUT to create.
 
Method Summary
private  float[] LabtoXYZ(float[] in)
          Converts CIE Lab coordinates to (D50) XYZ ones.
(package private)  float[] lookup(float[] in)
          Performs a lookup through the Color LookUp Table.
private  void readClut16(byte[] data)
          Loads a 16-bit CLUT into our data structures
private  void readClut8(byte[] data)
          Loads a 8-bit CLUT into our data structures.
private  float[] XYZtoLab(float[] in)
          Converts CIE XYZ coordinates to Lab ones.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

D50

private static float[] D50
CIE 1931 D50 white point (in Lab coordinates)


nIn

int nIn
Number of input/output channels


nOut

int nOut
Number of input/output channels


nInTableEntries

int nInTableEntries

nOutTableEntries

int nOutTableEntries

gridpoints

int gridpoints

nClut

int nClut

inTable

double[][] inTable

outTable

short[][] outTable

clut

double[] clut

inMatrix

float[][] inMatrix

useMatrix

boolean useMatrix

multiplier

int[] multiplier

offsets

int[] offsets

inputLab

boolean inputLab

outputLab

boolean outputLab
Constructor Detail

ColorLookUpTable

public ColorLookUpTable(java.awt.color.ICC_Profile profile,
                        int tag)
Constructor Requires a profile file to get the CLUT from and the tag of the CLUT to create. (icSigXToYZTag where X,Y = [A | B], Z = [0,1,2])

Method Detail

readClut16

private void readClut16(byte[] data)
Loads a 16-bit CLUT into our data structures


readClut8

private void readClut8(byte[] data)
Loads a 8-bit CLUT into our data structures.


lookup

float[] lookup(float[] in)
Performs a lookup through the Color LookUp Table. If the CLUT tag type is AtoB the conversion will be from the device color space to the PCS, BtoA type goes in the opposite direction. For convenience, the PCS values for input or output will always be CIE XYZ (D50), if the actual PCS is Lab, the values will be converted. N-dimensional linear interpolation is used.


LabtoXYZ

private float[] LabtoXYZ(float[] in)
Converts CIE Lab coordinates to (D50) XYZ ones.


XYZtoLab

private float[] XYZtoLab(float[] in)
Converts CIE XYZ coordinates to Lab ones.