【发布时间】:2016-09-21 09:59:38
【问题描述】:
背景
我正在编写一个简单的应用程序,其中应用程序从位图中以 RGB_565 格式提取像素颜色并通过 BLE 将其发送到蓝牙设备
我得到了 argb 格式的 int[] 颜色,我想要 RGB_565 格式
所以我从Color.red(-10267343) 提取了红色、绿色、蓝色,其中-10267343 是我从getPixel(x,y) 获得的像素的颜色
我明白了
red : 99
green : 85
blue : 99 //from the above color value -10267343
我的问题是如何在两个字节中添加这些红色、绿色、蓝色
我需要这种格式|R|R|R|R|R|G|G|G|G|G|G|B|B|B|B|B|
目前为止我试过这个方法
byte[] colorToByte(int c){
int r = (c >> 16) & 0xFF;
int g = (c >> 8) & 0xFF;
int b = c & 0xFF;
return new byte[]{(byte)((r&248)|g>>5),(byte)((g&28)<<3|b>>3)};
}
正如这个答案中所建议的How to correctly convert from rgb565 to rgb888
我也试过这个答案,但没有运气Java image conversion to RGB565
有什么办法可以解决这个问题吗?任何帮助表示赞赏
【问题讨论】: