如何将 24 位 RGB 转换为 8 位 RGB
我想知道将 24 位 RGB 颜色(每种颜色 8 位)转换为 8 位颜色(2 位蓝色、3 位绿色、3 位红色)的最佳方法是什么。我想要 C 代码来执行此操作。
I was wondering what is the best way to convert a 24-bit RGB color (8 bits per color) into an 8-bit color (2bits Blue, 3 Green, 3 Red). I'd like C code for doing this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
8 位 RGB 通常是索引(调色板)颜色格式,请参阅调色板(计算)。
不过,按照您描述的方式,从 24 bpp 中获取 8 bpp 非常简单 - 您需要剥离最低有效位并将这些位合并为每个像素的单字节值。 AFAIK 它不是标准或众所周知的像素颜色表示。
8 bit RGB is normally an indexed (palettized) color format, see Palette (computing).
The way you described it though, getting 8 bpp out of 24 bpp is pretty straightforward - you would need to strip least significant bits and merge the bits into single byte value, per pixel. AFAIK it is not a standard or well-known pixel color representation.
不是用C语言,而是用JavaScript。
https://stackoverflow.com/a/25258278/2130509
Not in C but in javascript.
https://stackoverflow.com/a/25258278/2130509
要将 8bit [0 - 255] 值转换为 3bit [0, 7],0 不是问题,但记住 255 应该转换为 7,所以公式应该是 Red3 = Red8 * 7 / 255。
转换 24bit 颜色转换为 8 位 (RRRGGGBB),
To convert 8bit [0 - 255] value into 3bit [0, 7], the 0 is not a problem, but remember 255 should be converted to 7, so the formula should be Red3 = Red8 * 7 / 255.
To convert 24bit color into 8bit (RRRGGGBB),