0
我正在開發一個Java EE應用程序,其中有一個包含某些產品的「項目」表以及一個用於設置其顏色的字段。16位轉換的相對8位顏色
問題:用戶從包含16或128種顏色的調色板中選擇顏色。我存儲顏色爲一個字節(8位顏色),我需要能夠爲RGB顏色/整數轉換成它的8位等效,反之亦然,如:
White: 0xFF(0b 111 111 11) to -1 or (255,255,255)
Red: 0x10(0b 111 000 00) to -65536 or (255, 0, 0 )
我有什麼嘗試到目前爲止:
void setColor(Color color){
short sColor = (color.getRGB() >> 16) & 0xFF) >> 8
| (color.getRGB() >> 8) & 0xFF) >> 8
| (color.getRGB() >> 0) & 0xFF) >> 8;
}
Color getColor(short sColor){
Color rgb = new Color(
/*red:*/ (sColor & 0xF) << 16,
/*gree:*/ (sColor & 0xF) << 8,
/*blue*/ (sColor & 0xF) << 0));
}
/* or */
Color getColor(short sColor){
Color rgb = new Color((sColor << 8) + sColor));
}
當我循環通過顏色值0到255,我得到一個單一的色調變化。
你的代碼似乎是無效的,在的getColor你不回色 – AlexWien 2013-02-08 15:09:09