我想知道什么是将24位RGB颜色(每种颜色8位)转换为8位颜色(2位蓝色,3绿色,3红色)。我想要C代码来做到这一点。如何将24位RGB转换为8位RGB
3
A
回答
6
8位RGB通常是索引(palettized)颜色格式,请参阅Palette (computing)。
尽管如此,从24条bpp中获得8条bpp非常简单 - 您需要去除最低有效位并将这些位合并为每个像素的单个字节值。 AFAIK它不是标准或众所周知的像素颜色表示。
+0
你确定应该舍弃不太重要的字节而不是近似吗? –
+2
有些选项,例如抖动。理解和实现最简单的方法是丢弃比特并减少细节,以适应固定数量的比特。在此之上的改变是增加更多的噪音,但留下更好的主观质量。无论如何,我敢打赌,如果OP向后退一步澄清问题,就会出现索引颜色格式。 –
1
不是在C中,但在JavaScript中。
encodedData = (Math.floor((red/32)) << 5) + (Math.floor((green/32)) << 2) + Math.floor((blue/64));
0
要转换的8位[0 - 255]值变换为3位[0,7]中,0是没有问题的,但要记住255应该转换为7,所以式应RED3 = Red8 * 7/255
24位颜色转换成8位(RRRGGGBB),
8bit Color = (Red * 7/255) << 5 + (Green * 7/255) << 2 + (Blue * 3/255)
相关问题
- 1. 将24位RGB转换为ARGB16
- 2. 将RGB图像转换为RGB 16位和8位
- 3. 转换32位rgb图像为8位rgb C++
- 4. 转换24位图像RGB到3位8色
- 5. 如何将图像颜色从RGB 24位量化为RGB 6位(64色)?
- 6. 如何十六进制颜色转换为RGB颜色(24位)
- 7. 在VB中将位图转换为RGB
- 8. java.awt.image.BufferedImage使用自定义ColorSpace的24位RGB到8位灰度转换
- 9. RGB 24位到16位颜色转换 - 颜色变暗
- 10. PIL:将RGB图像转换为特定的8位调色板?
- 11. 32位rgb bmp到C#中的24位rgb bmp问题
- 12. 16位RGB到3位RGB
- 13. 24位RGB图像到8位灰度级字节数组
- 14. 如何使用Java在ImageJ2中将图像从8位转换为RGB
- 15. 使用JMF快速实现24位RGB到灰度转换Java
- 16. 使用C#如何将RGB转换为YCrCb和YCrCb为RGB
- 17. 将RGB值转换为HSV
- 18. 将RGB转换为RGBA
- 19. ImageSharp将Rgb转换为Hsv
- 20. 如何将RGB转换为HTML颜色?
- 21. 如何将YUV转换为RGB高效
- 22. 如何将RGB转换为HSV?
- 23. 如何将BufferedImage RGBA转换为BufferedImage RGB?
- 24. 如何将Hex转换为RGB?
- 25. 将24位图像转换为8位单点触摸?
- 26. 将24位bmp转换为16位?
- 27. IMAGEJ:将现有的ImageProcessor图片(RGB)转换为8位灰度值
- 28. 如何将24位图像转换为16位rgb565位图?
- 29. 将整数转换为位图颜色RGB值C++
- 30. 在Python中将RGB颜色元组转换为六位代码
请添加有关编程语言和/或色彩表现细节。 –
对不起,我完全忘了 – Gootik