- 注册时间
- 2004-12-25
- 最后登录
- 1970-1-1
|
发表于 2005-7-27 15:04:00
|
显示全部楼层
要是两色的话,先保存成单色位图.
接着用lavaxIde就可以.
先读BMP的前第3到第6字节,那是文件大小,long型的,减去62就是数据的大小
再根据文件大小fseek到文件末尾(文件大小-1)后指向的位置往前读到第63个字节就行了,反着读是因为数据是反着储存的
而且是存两个数据字节再存两个=0的字节,如:
ff ff 00 00 ff ff 00 00
时候要注意,反着读要注意两个0是在最后的,还有BMP里bit位=0时显示黑点=1时显示空白点,所以读出每一字节后要取反(和255异或).然后在写入生成的数据文件里.
对于8位的BMP图(256色)不知道文件头加了一堆什么东西,反正没用,真正的数据从$436开始,同样用第3-6字节的数据fseek到文件末尾,再往回读,一字节表示一个点,读到$436就结束.
还有就是图象的尺寸是两个long型的数据,在$12-$15是宽,$16-19是高.
24位位图有点区别
同样在$12-$15是宽,$16-$19是高.$2-$5是文件大小.
但是数据是正向储存,从$36开始,每三字节表示一个点,直到数据结束.
自己研究的,不知道对不对,高手指教!
[em01] |
|