我试图将24位(8R,8G,8B)转换为8位(RRRGGGBB)颜色。
我理解基本的概念是将颜色字节缩小并将它们相加(移位后)。例如,给定RGB(255,254,253),我会取255/32*32 + 254/32*4 + 253/64,这将给出111,111,11b(白色)。
对于具有大量红色和绿色的图片,这样做效果很好,但一旦蓝色开始出现,事情就变得非常混乱。蓝色开始看起来比以前更像青色或紫色。
我不是在尝试进行抖动,而是要找到更好的RGB和8位之间的映射。
我考虑将RGB转换为HSV,然后再转换为8位,但我不知道如何从HSV转换为8位,因为H字节与RRRGGGBB不对应。即使它对应,我也无法得到黑色和白色。是否有一种方法可以加权处理H、S、V字节(就像我处理RGB一样)以得到我想要的结果?或者我应该坚持直接找到更好的RGB到8位的映射。