package ip.vs;
public class ColorUtils {
static public int[] imagetoInt(short[] imageR, short[] imageG,
short[] imageB, int numPixels) {
int[] imageData = new int[numPixels];
for (int i = 0; i < numPixels; i++) {
imageData[i] = ((0xFF) << 24) |
((imageR[i] & 0xFF) << 16) |
((imageG[i] & 0xFF) << 8) |
((imageB[i] & 0xFF));
}
return imageData;
}
static public int[] imagetoInt(float[] imageR, float[] imageG,
float[] imageB) {
int numPixels = imageR.length;
int[] imageData = new int[numPixels];
for (int i = 0; i < numPixels; i++) {
imageData[i] = ((0xFF) << 24) |
((((int) imageR[i]) & 0xFF) << 16) |
((((int) imageG[i]) & 0xFF) << 8) |
((((int) imageB[i]) & 0xFF));
}
return imageData;
}
static public int[] imagetoInt(double[] imageR, double[] imageG,
double[] imageB, int numPixels) {
int[] imageData = new int[numPixels];
for (int i = 0; i < numPixels; i++) {
imageData[i] = ((0xFF) << 24) |
((((int) imageR[i]) & 0xFF) << 16) |
((((int) imageG[i]) & 0xFF) << 8) |
((((int) imageB[i]) & 0xFF));
}
return imageData;
}
public short getRed(int valARGB) {
return ((short) ((valARGB >> 16) & 0xFF));
}
public short getGreen(int valARGB) {
return ((short) ((valARGB >> 8) & 0xFF));
}
public short getBlue(int valARGB) {
return ((short) (valARGB & 0xFF));
}
public short getA(int valARGB) {
return ((short) ((valARGB >> 24) & 0xFF));
}
public int putRGB(short r, short g, short b) {
int pixRGB;
pixRGB = (((int) 0xFF) << 24) | (((int) r & 0xFF) << 16) | (((int) g & 0xFF) << 8) |
((int) b & 0xFF);
return (pixRGB);
}
public short max(short r, short g, short b) {
if (r > g) {
if (r > b) {
return (r);
} else {
return (b);
}
} else {
if (g > b) {
return (g);
} else {
return (b);
}
}
}
public short min(short r, short g, short b) {
if (r < g) {
if (r < b) {
return (r);
} else {
return (b);
}
} else {
if (g < b) {
return (g);
} else {
return (b);
}
}
}
public short[] getRedArray(int[] inputArray) {
int totalPix = inputArray.length;
short r[] = new short[totalPix];
for (int i = 0; i < totalPix; i++) {
r[i] = (short) ((inputArray[i] & 0x00FF0000) >> 16);
}
return r;
}
public short[] getGreenArray(int[] inputArray) {
int totalPix = inputArray.length;
short g[] = new short[totalPix];
for (int i = 0; i < totalPix; i++) {
g[i] = (short) ((inputArray[i] & 0x0000FF00) >> 8);
}
return g;
}
public short[] getBlueArray(int[] inputArray) {
int totalPix = inputArray.length;
short b[] = new short[totalPix];
for (int i = 0; i < totalPix; i++) {
b[i] = (short) (inputArray[i] & 0x000000FF);
}
return b;
}
}