Windows下的图形处理函数很多,相比而言,Dos下的图形编程资料就比较匮乏了。我们这次就简要介绍一下16色Bmp图像的显示吧。
  Bmp图像文件头记录了一些文件的信息,如宽度、高度、颜色数等,数据格式都是固定的,我就不再作更细致的介绍了。对照程序中的TYPE...END TYPE语句很容易看明白,只要注意判断一下文件颜色数目,不是16色的拒绝显示就行。
  接下来的部分是调色板。一个好的编程工作者应该考虑更多的例外情况,绝对不能想当然地认为16色Bmp的各个颜色号就是黑、红、棕、蓝……排列。我的处理是将颜色与系统调色板进行比较,选出最相近的颜色,各位读者也可以试试自定义调色板等其它功能。反正我的PALETTE语句在SCREEN 12下只能得到深浅不同的红色。还有,不知怎的,我的QBasic中的READ语句无法使用了,所以我用了最笨的直接数组赋值法,其它朋友请自己尝试尝试。
  然后就可以读出像素数据进行显示了。Bmp图像要求每行数据块长度为4的倍数,因此放置了一些无用数据凑数,写点时要排除无效数据。除此之外没有更多的技术难题,大家可以对照源代码慢慢琢磨。
  为方便大家,滇狐制作了一个简单的例题,来看看吧!