屏幕图形的再利用——介绍Windows图形和SPT图形的生成方法

Author: 广东李东 Date: 1993-10-01

        PICTA.GIF是屏幕拷贝下来的文件(320*200,256色),其内容包括文件标志位(2字节),显示模式(1字节),调色板寄存器内容(768字节),位图(64000字节),总长度共64771字节。
        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机通过。(广东李东)