算法:8位(256色)的图像 如何 转换成 24位

chenbin200818 2010-09-10 06:29:26
纯c实现, 如何实现 8位(256色)的bmp 转换成 24位的

只需要 转换 公式

我自己转换 后发现 图像 失真比较厉害 以下是我的转换公式
unsigned char B, G, R;
原始 像素 为 char color;
B = color >>5;
G = (color<<3)>>6;
R = (color<<5)>>5;
...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenbin200818 2010-09-12
  • 打赏
  • 举报
回复
刚才我看了 答题是明白了 谢谢了
jixingzhong 2010-09-12
  • 打赏
  • 举报
回复
大于8位的位图,才会有调色板索引
chenbin200818 2010-09-12
  • 打赏
  • 举报
回复
那该如何 建立 个256个颜色的映射表呢 我很不清楚
麻烦 告诉我 一下
我不是vc程序员,是做c嵌入式的, 对这个真的不清楚
arong1234 2010-09-10
  • 打赏
  • 举报
回复
我模糊的记得确实如此[Quote=引用 4 楼 jim_king_2000 的回复:]
据我所知,256色的位图,其真实的像素点值是存放在调色板里的。8位值只不过是调色板的索引,并不代表红绿蓝。
[/Quote]
Jim_King_2000 2010-09-10
  • 打赏
  • 举报
回复
据我所知,256色的位图,其真实的像素点值是存放在调色板里的。8位值只不过是调色板的索引,并不代表红绿蓝。
gamemagic 2010-09-10
  • 打赏
  • 举报
回复
需要颜色抖动处理。否则直接转质量差
dukelee 2010-09-10
  • 打赏
  • 举报
回复
8位灰度图到RGB转换没有固定算法,属于伪彩色,基本就是靠经验
比如分段映射也可以,低灰度映射为蓝色,中灰度映射为绿色,高灰度映射为红色
arong1234 2010-09-10
  • 打赏
  • 举报
回复
8位转24位效果本来就不该很好吧?我觉得你应该建立一个256个颜色的映射表,每个表内是你想转换后的颜色,然后查表即可.

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧