Java tutorial
/* Java Media APIs: Cross-Platform Imaging, Media and Visualization Alejandro Terrazas Sams, Published November 2002, ISBN 0672320940 */ import java.awt.image.DirectColorModel; public class FindComponents { DirectColorModel dcm32; DirectColorModel dcm16; int[] components; float[] componentsf; int value32; short value16; int red8, green8, blue8, alpha8; short red5, green5, blue5; /** * FindComponents.java -- prints out normalized color components for two * different */ public FindComponents() { red8 = red5 = 30; green8 = green5 = 20; blue8 = blue5 = 10; alpha8 = 255; dcm32 = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000); value32 = (alpha8 << 24) + (red8 << 16) + (green8 << 8) + blue8; components = dcm32.getComponents(value32, null, 0); componentsf = dcm32.getNormalizedComponents(components, 0, null, 0); System.out.println("Normalized components are: "); for (int i = 0; i < componentsf.length; i++) System.out.println("\t" + componentsf[i]); dcm16 = new DirectColorModel(16, 0x7c00, 0x3e0, 0x1f); value16 = (short) ((red5 << 10) + (green5 << 5) + blue5); components = dcm16.getComponents(value16, null, 0); componentsf = dcm16.getNormalizedComponents(components, 0, null, 0); System.out.println("Normalized components are: "); for (int i = 0; i < componentsf.length; i++) System.out.println("\t" + componentsf[i]); } public static void main(String[] args) { new FindComponents(); } }