该文件头为128个字节,结构如下
wFileID: SmallInt;  //文件标识
                     // LA   wSatelliteID: SmallInt;  //标识   1001
   wOrbitNo: SmallInt;     //号码
   WUporDown: SmallInt ;    //1  或  0
   wYeat: SmallInt;        //年
   wMonth: SmallInt;       //月
   wDay: SmallInt;         //日
   wHour: SmallInt;        //时
   wminute: SmallInt;       //分
   wDayorNight: SmallInt ;   //白天黑夜标识。0:白天 1:黑夜
   wChannelNums: SmallInt ;  //通道数
   wProjectType: SmallInt ;   //
   wWidth: SmallInt;          //  列数
   wHeight: SmallInt ;         //行数
   fLonPrecision: single;       //经度分辨率--等角投影    x分辨率
   fLatPrecision: single;       //纬度分辨率 -等角投影     y分辨率
   fStandardLat1: single;             //标准纬度
   fStandardLat2: single;        //标准经度
   fEarthR: single;                //地球半径
   fMinLat: single;                //最小纬度
   fmaxLat: single;                // 最大纬度
   fminlon: single;                 // 最小经度
   fmaxlon: single;                 // 最大经度
   fStandardlon: single;             // 圆锥投影中心经度
   fCenterlon: single;              // 图像中心经度
   fCenterlan: single;              // 图像中心纬度
   bChIndex : array[1..40] of Byte;    //通道索引
   wComposedDays: word;              //已合成天数
   wVersion: word;                  //版本号
   wBytes: word;                      //
   dwSkiplength:cardinal;               //局地文件头记录后填充字段长度其后是每个通道按两个字节一个值来存放。每个通道都连续存放,例如:一通道排完接着排二通道的
请问怎么读取这个文件,然后显示出来啊?转换为bmp也行啊!!
大侠出手啊!!!!我拿他和bmp格式文件来对比说明吧
bmp(p24)是按象素倒着排,每个象素是3个字节,一幅图是这样BGRBGRBGRBGRBGRBGRBGRBGRBGR.....来排。而这个是RRRR......GGGG......BBBB....来排的每个B(或G或R)值是按2个字节来存的。每个通道大小都是 2×行数×列数(一个r或一个g或一个b是两字节)
行列数是:
(  wWidth: SmallInt;          //  列数
   wHeight: SmallInt ;         //行数)要作的工作是1:  把按两个字节存放的值div 10 后 存到一个字节里
            2:  3个通道合成一个图 显示出来(图像为:p24宽:wWidth: SmallInt;高:wHeight: SmallInt ;)

解决方案 »

  1.   

    把RGB分别读到三个Byte数组中,然后在按照BGR的顺序组合成一个数组再保存成bmp
      

  2.   

    用数组太慢,而且耗内存,这样的图像很大的。
    我用tfilestream了,不知道怎么在流里把2个字节数据除10后存到一个字节里,怎么分别读出而后合成显示谢谢两位啊
      

  3.   

    卫图?
    就用FileRead不行吗?我用FileRead读连续的数据还是很快的,不过没试过这样反复跳转着读的,你可以试试,我也在做类似的东西,欢迎交流一下。
    再说你楼上的两位是一个人哦,呵呵。