public static LUT create(int bits, byte[] r, byte[] g, byte[] b, int rOffset, int gOffset, int bOffset) { return r.length == g.length && g.length == b.length && rOffset == gOffset && gOffset == bOffset ? new Packed(bits, r, g, b, rOffset) : new PerColor(bits, r, g, b, rOffset, gOffset, bOffset); }
int value(int pixel, int offset, byte[] lut) { return lut[index(pixel, offset, lut.length)] & 0xff; } }
@Override public int getBlue(int pixel) { return value(pixel, bOffset, b); }
@Override public int getGreen(int pixel) { return value(pixel, gOffset, g); }
@Override public int getBlue(int pixel) { return value(pixel, bOffset, b); }
@Override public int getGreen(int pixel) { return value(pixel, gOffset, g); }
@Override public int getRed(int pixel) { return value(pixel, rOffset, r); }
@Override public int getRed(int pixel) { return value(pixel, rOffset, r); }
int value(int pixel, int offset, byte[] lut) { return lut[index(pixel, offset, lut.length)] & 0xff; } }
public static LUT create(int bits, byte[] r, byte[] g, byte[] b, int rOffset, int gOffset, int bOffset) { return r.length == g.length && g.length == b.length && rOffset == gOffset && gOffset == bOffset ? new Packed(bits, r, g, b, rOffset) : new PerColor(bits, r, g, b, rOffset, gOffset, bOffset); }