// Copyright 2006, FreeHEP.
package org.freehep.graphicsio.gif;
/**
* Just maps the colors straight into a map.
*
* Slow implementation...
*
* @author duns
* @version $Id$
*/
public class GIFPlainColorMap implements GIFColorMap {
public int[] create(int[][] pixels, int maxColors) {
int[] colors = new int[maxColors];
int n = 0;
int e = 0;
for (int x = 0; x < pixels.length; x++) {
for (int y = 0; y < pixels[x].length; y++) {
int i = 0;
while (i<n) {
if (colors[i] == pixels[x][y]) break;
i++;
}
if (i==n) {
if (i < maxColors) {
colors[i] = pixels[x][y];
n++;
} else {
e++;
}
}
pixels[x][y] = i;
}
}
if (e > 0) {
String msg = "GIFPlainColorMap: Too many colors "+(n+e)+" > "+maxColors;
throw new IllegalArgumentException(msg);
}
return colors;
}
}