Java tutorial
import java.awt.Color; import java.awt.image.ColorModel; import java.awt.image.IndexColorModel; public class Main { public static void main(String[] args) { byte ff = (byte) 0xff; byte[] r = { ff, 0, 0, ff, 0 }; byte[] g = { 0, ff, 0, ff, 0 }; byte[] b = { 0, 0, ff, ff, 0 }; ColorModel cm = new IndexColorModel(3, 5, r, g, b); Color[] colors = { new Color(255, 0, 0), new Color(0, 255, 0), new Color(0, 0, 255), new Color(64, 255, 64), new Color(255, 255, 0), new Color(0, 255, 255) }; for (int i = 0; i < colors.length; i++) { float[] normalizedComponents = colors[i].getComponents(null); int[] unnormalizedComponents = cm.getUnnormalizedComponents(normalizedComponents, 0, null, 0); int rgb = colors[i].getRGB(); Object pixel = cm.getDataElements(rgb, null); System.out.println(colors[i] + " -> " + ((byte[]) pixel)[0]); } for (byte i = 0; i < 5; i++) { int[] unnormalizedComponents = cm.getComponents(i, null, 0); System.out.print(i + " -> unnormalized components"); for (int j = 0; j < unnormalizedComponents.length; j++) System.out.print(" " + unnormalizedComponents[j]); System.out.println(); } } }