怎样把PCX图形转换成BASIC图形

Author: 张正新 Date: 1997-01-01

  在BASIC程序中,可利用UCDOS的特显功能显示广为流行的PCX图形,那么怎样在非汉字系统下或不用UCDOS的特显功能来显示PCX图形呢?下面介绍一种在QBASIC或TURBO BASIC语言中,把PCX图形转换成BASIC图形的方法。该方法的步骤为:
  1.先启动UCDOS及其特显功能,然后在QBASIC或TURBO BASIC的显示模式9下,显示一个PCX图形。
  2.利用读取指定点色值的函数POINT,读取屏幕上的色值并把色值存入一个数组中(此时你得耐心等待)。
  3.改变显示模式为1,因为只有在模式1下保存的BASIC图形在重新显示时最好。但模式1的分辨率太低,需人为改为高分辨率,对此可用设置当前视窗相对坐标的语句WINDOW将视窗坐标设置为640列、340行,为的是与显示PCX图形时的列数、行数一致。
  4.用画点语句PSET将色值数组中的颜色画到屏幕上,并用BSAVE命令将屏幕上的图形存为某一个图形文件——这个图形已经是一个BASIC格式的图形了。
  此后我们就可在任何系统下,在BASIC显示模式1下,用BLOAD命令随时显示那个BASIC格式的图形了。
  下面程序1可将一个名为AAA.PCX的PCX图形转换为一个名为BBB.BAS的BASIC图形文件。
  程序2可将BBB.BAS图形重新显示。
#3  程序1
  SCREEN 9:i=0
  PRINT CHR$(14);”[RE0,0,AAA.PCX$]”
  DIM C(25000)   ′此数组大小为640  340
  FOR x=0 to 639
  FOR y=0 to 339
  a=POINT (x,y)
  C(i)=a
  i=i+1
  NEXT y:NEXT x
  SCREEN 1:i=0
  WINDOW SCREEN(640,340)-(0,0)
  FOR x=0 to 639
  FOR y=0 to 339
  PSET (x,y),C(i)
  i=i+1
  NEXT y:NEXT x
  DEF SEG=&HB800
  BSAVE ”BBB.BAS”,0,400
  END
#3  程序2
  SCREEN 1
  DEF SEG=&HB800
  WINDOW SCREEN(640,340)-(0,0)
  BLOAD ”BBB.BAS”,0
  END