社区
API
帖子详情
如何将24为位图转化为8位的?
tenyears
2003-10-16 08:56:40
现在在用vb6做程序,需要实现位图转换的功能,即将24位,32位,16位的彩色图片转化为8位的位图,不知如何处理,请大家帮忙。
...全文
242
5
打赏
收藏
如何将24为位图转化为8位的?
现在在用vb6做程序,需要实现位图转换的功能,即将24位,32位,16位的彩色图片转化为8位的位图,不知如何处理,请大家帮忙。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rainstormmaster
2003-10-17
打赏
举报
回复
在http://expert.csdn.net/Expert/topic/1538/1538596.xml?temp=.8344385里
我贴了:已知hDC,把图象保存为256色、16色、2色、256级灰度bmp图象的方法,参考一下
AresChen
2003-10-16
打赏
举报
回复
首先要确定你是要转到黑白的图片,还是把图片颜色的精度降低。
如果是转黑白比较简单,24位是RRGGBB(或者BBGGRR,方法一样),只要用RR+GG+BB再除以3就完事了。32位的处理类似,只是多了一个Alpha色,可以不去管。
降低精度的话,就比较麻烦了。8位颜色无法均摊到3个颜色上,所以你首先要确定哪两个颜色占3位,哪个颜色占2位,然后按照256(8位,24位的一个颜色的数量)到8(3位,8位颜色中的数量),按比例缩小,再拼装到一个8位数中。这样你所获得到的一个8位数,并不是一个颜色数,所以你还需要建立一个表,去记录原先的每一个值转换后的值是多少,通过这个表,你可以知道每一个8位数在原先的图片中的位置(因为精度降低了,FF和FE变成一个数了),比如32这个8位数,通过这个表你可以检索到原先位于屏幕的p1、p2、p3这3个点,在把这3个点的颜色值相加求平均,你就得出了精度降低以后,32这个数所代表的颜色值是多少了。以此进行,知道256个数所代表的颜色值全部求出来,然后在往调色板中去添加这些颜色,然后再~~~~
呵呵,后续的查msdn吧,我实在懒的写了。不过我记得API中有一个函数是图形转换的,你可以查查看(别打我啊,我也是写了这么半天才想起来)
jintianatxd
2003-10-16
打赏
举报
回复
不懂.
我想应该是bmp文件的格式问题和颜色的取近值的问题.
帮你up.
kunbone
2003-10-16
打赏
举报
回复
不懂,关注
subzero
2003-10-16
打赏
举报
回复
提供一个思路。
颜色数肯定要减少,需要计算出源图的所有重要颜色并取前256个写入调色板,其他按相似度大小向已经得出的调色板靠拢
24位
图
转为8位
图
的C++代码
24位彩
图
转为8位灰度
图
的C++代码,通过修改位
图
文件信息头来实现位
图
转换。
24位
图
转8位
图
像
24位
图
转化
为8位
图
的C++代码,很好用的
源码-多格式位
图
转化
+简易画
图
3)将位
图
转化
为坐标文件,供其他应用使用。 用途: 1)无特殊作用,写着玩。就是想用程序在坐标层次控制位
图
。 2)可用C++在源码级别生成位
图
,画个小画;读入位
图
数据,转换位
图
格式。 3)将
图
片
转化
为单片机开发...
实现位
图
文件
转化
为JPEG文件
实现位
图
文件
转化
为JPEG文件 实现位
图
文件
转化
为JPEG文件 实现位
图
文件
转化
为JPEG文件 实现位
图
文件
转化
为JPEG文件
32位24位彩
图
转化
8位灰度
图
工具
转化
后的
图
像保存在change.bmp中。里含大量BMP
图
片。如不能用,请给我要代码,我也是初学者,不知道能否兼容。
API
1,486
社区成员
23,279
社区内容
发帖
与我相关
我的任务
API
VB API
复制链接
扫一扫
分享
社区描述
VB API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章