* 1024.
*/
private static final int MAX_COLOR_REGISTERS = 1024;
+ // Black-and-white is possible too.
+ // private static final int MAX_COLOR_REGISTERS = 2;
// ------------------------------------------------------------------------
// Variables --------------------------------------------------------------
int green = (color >>> 8) & 0xFF;
int blue = color & 0xFF;
+ if (MAX_COLOR_REGISTERS == 2) {
+ if (((red * red) + (green * green) + (blue * blue)) < 35568) {
+ // Black
+ return 0;
+ }
+ // White
+ return 1;
+ }
+
+
rgbToHsl(red, green, blue, hsl);
int hue = hsl[0];
int sat = hsl[1];
// map the BufferedImage colors to their nearest neighbor in RGB
// space.
+ if (MAX_COLOR_REGISTERS == 2) {
+ rgbColors.add(0);
+ rgbColors.add(0xFFFFFF);
+ rgbSortedIndex[0] = 0;
+ rgbSortedIndex[1] = 1;
+ return;
+ }
+
// We build a palette using the Hue-Saturation-Luminence model,
// with 5+ bits for Hue, 2+ bits for Saturation, and 1+ bit for
// Luminance. We convert these colors to 24-bit RGB, sort them