社区
C语言
帖子详情
算法:8位(256色)的图像 如何 转换成 24位
chenbin200818
2010-09-10 05:46:21
纯c实现, 如何实现 8位(256色)的bmp 转换成 24位的
只需要 转换 公式
我自己转换 后发现 图像 失真比较厉害 以下是我的转换公式
unsigned char B, G, R;
原始 像素 为 char color;
B = color >>5;
G = (color<<3)>>6;
R = (color<<5)>>5;
...全文
381
8
打赏
收藏
算法:8位(256色)的图像 如何 转换成 24位
纯c实现, 如何实现 8位(256色)的bmp 转换成 24位的 只需要 转换 公式 我自己转换 后发现 图像 失真比较厉害 以下是我的转换公式 unsigned char B, G, R; 原始 像素 为 char color; B = color >>5; G = (color<>6; R = (color<>5;
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zmshy2128
2010-09-12
打赏
举报
回复
bmp文件格式:
文件头 + 图像头 +
调色板
+ 颜色数据值
chenbin200818
2010-09-12
打赏
举报
回复
看来 是我没搞清楚问题
那该如何 建立 个256个颜色的映射表呢 我很不清楚
麻烦 告诉我 一下
我不是vc程序员,是做c嵌入式的, 对这个真的不清楚
用户 昵称
2010-09-11
打赏
举报
回复
查出来调色板然后就是24位了。
mLee79
2010-09-11
打赏
举报
回复
8位色一般都有调色板...
zmshy2128
2010-09-11
打赏
举报
回复
[Quote=引用楼主 chenbin200818 的回复:]
是我的转换公式
unsigned char B, G, R;
原始 像素 为 char color;
B = color >>5;
G = (color<<3)>>6;
R = (color<<5)>>5;
[/Quote]
你这公式从那来的??????????????????
8位(256色)的bmp 转换成 24位。
是8位的灰度图像吗?如果是的话,那么 B = G = R = color; 即可。
如果不是,查找颜色表
zenny_chen
2010-09-10
打赏
举报
回复
[Quote=引用楼主 chenbin200818 的回复:]
纯c实现, 如何实现 8位(256色)的bmp 转换成 24位的
只需要 转换 公式
我自己转换 后发现 图像 失真比较厉害 以下是我的转换公式
unsigned char B, G, R;
原始 像素 为 char color;
B = color >>5;
G = (color<<3)>>6;
R = (color<<5)>>5;
[/Quote]
楼主在处理的时候不能用char,应该用unsigned int
因为像第二个,你左移3位后,后面再右移,由于char是带符号的,因此这里将用算术右移,把符号都移进来了,呵呵。
像素的值如果被表达为整型的话,应该用无符号表示。一个分量若是8位的话就是0到255。
zhuyi108
2010-09-10
打赏
举报
回复
数字格式换下试试@
Trinx
2010-09-10
打赏
举报
回复
没搞过,先顶贴了。
C语言
70,037
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章