15位彩色组件,位移位
15Bit Color Components, Bit shifting
好的比特移位对我来说仍然有点奇怪。
我有一个16位的值。前15位是颜色,最后一位是alpha。
我已经用24和32位的颜色做了这件事,没有问题,因为它们是很好的字节大小,但我似乎无法用15/16位来处理。
这是我过去所做的,使用24/32位颜色
(m_colorValue >> RED_CHANNEL) & 0xFF;
我正试图把这个值分成4个值。3个5位颜色值和1个阿尔法值。我不知道该用什么口罩。
谢谢。
如果我理解正确:
red = (packed >> 0) & 0x1F;
green = (packed >> 5) & 0x1F;
blue = (packed >> 10) & 0x1F;
alpha = (packed >> 15) & 0x01;
packed最好是unsigned,我可能要去接订单了。
使用位移位。
ushort s;
ushort b= s&0x1F // first five bits
ushort g= (s>>5)&0x1F // second five bits
等等。。。
你的问题很模糊,但如果你试图从RGB1555中提取单独的颜色成分,这应该可以做到:
unsigned short color;
const unsigned int
a = color & 0x8000,
r = color & 0x7C00,
g = color & 0x03E0,
b = color & 0x1F;
相关文章:
- OpenCV EqualizeHist()从彩色图像创建黑白图像
- 如何将 txt 文件中的行分隔为组件C++
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 彩色图像的卤化物处理平均值
- 到连接组件算法的问题(递归)
- 两个 COM 组件中 ENUM 的重复条目
- 为什么 gcc 会产生这种奇怪的组件与叮当声?
- 使用 bfs 解决连接组件问题时得到错误的答案
- 如何在ECS框架中更新组件数据和通知系统
- 如何从ECS中的模板方法获取组件?
- 使用蓝牙组件将数据从Android手机传输到串行设备时出现问题
- 组件上的虚幻引擎可蓝图UFUNCTION会导致构建错误
- 在C++中访问蓝图类组件的正确方法是什么?
- 有关纯 ECS(实体组件系统)和更新系统的问题
- 提高基于组件的游戏引擎的效率
- OpenCV C++将灰色图像组合成彩色图像
- 从组件的 std::type_index 获取派生最多的类型
- 我们可以将阈值应用于色彩空间模型的单个组件(如 RGB 和 LAB)吗?
- OpenCV - 如何将灰度转换为彩色(CV_8UC3)?
- 15位彩色组件,位移位