我正在尝试将 24 位(8R、8G、8B)转换为 8 位(RRRGGGBB)颜色
我了解缩小颜色字节并将它们加在一起(移位后)的基本概念。即给定 RGB(255,254,253) 我会取 255/32*32 + 254/32*4 + 253/64 这会给我 111,111,11b(白色)。
这对于带有大量红色和绿色的图片非常有效,但是一旦蓝色开始出现,事情就会变得非常糟糕。蓝色开始看起来比以前更蓝绿色或紫色。
我不是要进行抖动,而是要在 RGB 和 8bit 之间找到更好的映射。
我考虑将 RGB 转换为 HSV,然后转换为 8 位,但我也不确定如何从 HSV 转换为 8 位,H 字节不对应 RRRGGGBB。即使是这样,我也无法黑白分明。有没有办法对 H、S、V 字节进行加权(就像我对 RGB 所做的那样)以获得我想要的?还是我应该坚持在 RGB 直接到 8 位之间找到更好的映射