屏幕图形的再利用——介绍Windows图形和SPT图形的生成方法
BMP位图文件由三个部分构成,位图文件头、位图文件信息、位图阵列。下面以256色图象为例说明文件结构。
序号 偏移量 长度 描述
1 0 2 文件类型,值为BM(424DH)
2 2 4 文件大小,以字节为单位(FE36H)
3 10 4 位图阵列起始位置,相对于文件头的偏 移量字节数(0436H)
4 14 4 位图信息头的长度(28H)
5 18 4 位图的宽度(0140H)
6 22 4 位图的高度(C8H)
7 26 2 目标设备的级别,必须为1
8 28 2 每个象素所占的位数,8(256色)
9 30 4 位图的压缩类型,不压缩(0)
10 34 4 位图的大小(FA00H)
11 54 1024 存放颜色表,共256色,按B、G、R、00 存放
12 1078 6400 位图阵列,从最后一行开始存放点阵
SPT中未压缩的SPT图形文件(*.SPT)比较简单,它按点阵单色位映象存放图形,每个图形文件都有一个64字节的文件头,紧接其后存放图形的点阵,从第一行开始,逐行记录图形的点阵信息,每个字节对应8个象素点。
序号 编移量 长度 描述
1 0 16 文件头标志(Supper-Star File)
2 34 2 图形宽度(0140H)
3 36 2 图形高度(C8H)
下面给出了具体实现的程序,为了适合不同的用户都能使用,故采用BASIC编程,PICTBMP.BAS程序是实现屏幕拷贝下来的文件PICTA.CIF转换成PICTBMP.BMP文件,程序40-120行是生成文件头;130-190行是生成颜色表,由于BMP文件中颜色亮度是由8bit决定,而PICTA.GIF中是6bit,故在变换时需左移2位;200-240行是生成位图点阵。
PICTSPT.BAS程序是完成转移成SPT文件,由于SPT只能处理黑白二色,故首先需要Windows中把PICTAM.BAS程序生成的PICTBAM.BMP调入,再按单色图象格式存于PICTBW.BMP文件中,然后运行此程序,程序中40-120行生成文件头,130-170行是生成位图点阵。
需要注意的是生成的PICTBMP.BMP文件是256种颜色的图象,如果Windows中是16种颜色的显示方式,显示效果自然会很差。这时需运行SETUP.EXE文件,把Windows设置成256种颜色的显示方式,这时你调入的图象将是一个色彩鲜艳的高质量图象。另外,对于不同的程序拷贝下来的画面,其文件格式有所不同,这时只需稍加修改程序中的数据,把颜色表位图点阵宽度、高度的数据修改在对应的位置上,即可同样获得你所需要的图象。此程序已在COMPAQ、AST的386、486机通过。(广东李东)