色を取得したい単純なバイト配列があります。私の計画では、赤から 3 ビット、緑から 3 ビット、青から 2 ビットを用意することでした。8 ビット。
色は正しいと思います:
私が間違っている場合は、私を修正してください、
byte[] colours = new byte[256]; //256 different colours, 8 * 8 * 4
//(3 bits(red) + 3 bits(green) + 2 bits(blue)
int index = 0;
for(byte r = 0; r < 8; r++){
for(byte g = 0; g < 8; g++){
for(byte b = 0; b < 4; b++){
byte rr = (r & 255);
byte gg = (g & 255);
byte bb = (b & 255);
colours[index++] = (rr << 5 | gg << 2 | bb);
}
}
}
私の目標は、 getColor(byte r, byte g, byte b) を次のようにすることです
public static byte getColor(byte r, byte g, byte b){
return colours[return the right color using r g b];
}
しかし、方法がわかりません。ここで助けが必要です。
可能であれば、 Color クラスを使用したくありません。
その他の情報: BufferedImage.TYPE.BYTE.INDEXED を使用してペイントしています。
私の英語が下手ならごめんなさい:)
編集 間違っていたところを修正