将32bpp位图转换为256色

时间:2014-02-18 08:24:38

标签: c++ bitmap

我想将32bpp位图转换为256色,而不使用调色板。有没有办法做到这一点?

我减少颜色的主要目的是减少图像尺寸,因为此图像必须通过互联网传输到套接字上。

注意:我不想将调色板用于256色位图。

提前致谢。 保罗

2 个答案:

答案 0 :(得分:2)

假设您使用3位表示红色和绿色,2位表示蓝色,并忽略alpha。然后你有8种红色,8种绿色和4种蓝色。您需要将256色红色,绿色和蓝色通道映射到8或4种颜色。天真的方法:

  • 对于红色和绿色,3位通道,将源通道值除以32。
  • 对于蓝色,4位通道除以64.

显然,您可以按照自己喜欢的方式划分可用的8位。您可以选择从8位通道到2或3位通道的不同方式。等等。

我不知道不使用调色板的常用8位像素位图格式。所以我认为你必须自己动手。在原始图像和缩小的颜色深度图像之间的视觉相似性方面不要期望非常好的结果。

答案 1 :(得分:0)

我想,可能是,你只需将32位位图转换为8位位图,就是256位颜色。