gpt4 book ai didi

colors - 在 24 位 RGB 和 8 位颜色之间转换

转载 作者:行者123 更新时间:2023-12-03 20:19:48 25 4
gpt4 key购买 nike

我正在尝试将 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 位之间找到更好的映射

最佳答案

将8bit [0 - 255]值转换为3bit [0, 7],0不是问题,但记住255应该转换为7,所以公式应该是Red3 = Red8 * 7/255。

要将 24 位颜色转换为 8 位,

8bit Color = (Red8 * 7 / 255) << 5 + (Green8 * 7 / 255) << 2 + (Blue8 * 3 / 255)

关于colors - 在 24 位 RGB 和 8 位颜色之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com