我正在移植一个从 16 位色深构建到 18 位色深的软件。如何将 16 位颜色转换为 18 位颜色?谢谢。
最佳答案
在不知道设备的情况下,我只能推测。设备通常是红色、绿色、蓝色,因此每种颜色都会有 6 位变化。这意味着每种颜色有 64 种变化,总共有 262,144 种颜色。
任何位图都可以缩放到此显示。如果您对每个组件(例如,红色)进行归一化,然后乘以 64,您将得到缩放后的版本。
如果您要问其他问题或需要更多详细信息,请询问。
更新:
有两种 16 位位图格式。一种是 5-5-5(每像素 5 位),另一种是 5-6-5(绿色得到额外的位)。为了进行此转换,我将假设为 5-5-5。
对于每个像素中的每种颜色,您需要这样的东西:
NewColor = (oldColor/32.0)*64
这会将旧颜色转换为介于 0.0 和 1.0 之间的数字,然后将其放大到新的值范围。
关于c++ - 如何将 18 位色深表示为 16 位色深?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056879/