| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2434 人关注过本帖
标题:800X600X256色下24K真彩色BMP图片为什么显示不出来?(本子程序256色BMP图片 ...
只看楼主 加入收藏
RockCarry
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:13
帖 子:662
专家分:58
注 册:2005-8-5
收藏
得分:0 
上面讲的是抖动处理的方法,当然也可以使用最佳匹配的算法,以获得更好的显示效果。
方法如下:
1. 统计一个bmp中各个颜色出现的频率
2. 将颜色频率按从高到底进行排序(sorted color table - SCT)
3. 将显示器256色的调色板设置为SCT表中的前256项 (将这256项记为SCT256表)
4. 对原24bit bmp中的每个像素点进行如下处理:
根据该像素的RGB值,在SCT256中查找一个最佳匹配的颜色值,并取得该颜色值在SCT256中的编号(8bit)
将这个8bit的编号作为颜色值,绘制到屏幕的相应位置
5. 正确处理完24bit bmp中的每一个像素,就ok了

这实际上就是将24bit色bmp转换为256色bmp的一种简单算法,效果也不错,原理也很简单。选择最佳匹配色也很容易,就是选泽颜色空间中,距离最小的,距离函数直接使用欧式距离就非常理想。这个算法是我自己独立思考出来的,可以说是原创。

RockCarry
2007-2-12


[此贴子已经被作者于2007-2-12 11:43:36编辑过]

2007-02-12 11:34
ba_wang_mao
Rank: 2
来 自:成都理工大学
等 级:论坛游民
帖 子:297
专家分:27
注 册:2006-11-7
收藏
得分:0 
谢谢 RockCarry,我试试

多年以来还在MSDOS、单片机下搞嵌入式编程,对WINDOWS编程一窍不通,很想了解WINDOWS下病毒编程技术。
2007-02-13 08:32
快速回复:800X600X256色下24K真彩色BMP图片为什么显示不出来?(本子程序256色B ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014045 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved