ENVI
description = {
samples = 1996
lines = 1125
bands = 4
header offset = 0
file type = ENVI Standard
data type = 12
interleave = bip
上面这些是要读取的二进制文件的基本信息


下面附上我读取和显示的代码:

#include<stdio.h>
int r1,g1,b1;//用来改变显示遥感图像的波段
AnsiString storefile;//用来存放文件路径
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int count1=0;//用来计算绘图位置
int offset=15952;//1996列*8字节-读取的16字节
int r,g,b;//用来储存RGB
FILE *fp;//定义文件指针
unsigned short int idata[8];//用来读取本行数据
unsigned short int nextidata[8];//用来读取下行数据
AnsiString name;
name=storefile;
fp=fopen(name.c_str(),"rb");//打开文件
if(fp!=NULL)
 {
  while(!feof(fp))//循环一直到文件读取完毕
   {

    fread(idata,2,8,fp);//读取本行数据储存在idata[]中
    fseek(fp,offset,1);  //调整指针到下一行
    fread(idatanext,2,8,fp);// 读取调整指针后的这一行数据
    if(count1%998!=0)  //如果这一行数据读到头,要调到隔一行的那一行
    fseek(fp,-(offset+16),1);//将指针调回上一行并退回到上一次读取的位置

    count1++;
    r=(idata[r1]+idata[r1+4]+idatanext[r1]+idatanext[r1+4])/12.8;
    g=(idata[g1]+idata[g1+4]+idatanext[g1]+idatanext[g1+4])/12.8;
    b=(idata[b1]+idata[b1+4]+idatanext[b1]+idatanext[b1+4])/12.8;
    //将读取出本行和下一行的共16个数据每相邻的四个一组求平均值作为RGB输出到image,以实现图像缩小或者说压缩
    Image1->Canvas->Pixels[count1%998-1][count1/998]
        =Graphics::TColor(RGB(r,g,b));//将图像输出到image
    }
    fclose(fp);//关闭文件
 }
}


----------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(OpenDialog1->Execute())
storefile=OpenDialog1->FileName;
//使用Dialog组件打开文件,将文件地址赋给storefile

}


----------
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
switch(ComboBox1->ItemIndex)
  {
   case 0: r1=0 ;break;
   case 1: r1=1 ;break;
   case 2: r1=2 ;break;
   case 3: r1=3 ;break;
  }
}
//使用ComboBox组件来实现选择波段R


----------
void __fastcall TForm1::ComboBox2Change(TObject *Sender)
{
switch(ComboBox2->ItemIndex)
  {
   case 0: g1=0 ;break;
   case 1: g1=1 ;break;
   case 2: g1=2 ;break;
   case 3: g1=3 ;break;
   }

}

//使用ComboBox组件来实现选择波段G
----------
void __fastcall TForm1::ComboBox3Change(TObject *Sender)
{
switch(ComboBox3->ItemIndex)
  {
   case 0: b1=0 ;break;
   case 1: b1=1 ;break;
   case 2: b1=2 ;break;
   case 3: b1=3 ;break;
  }
}
//使用ComboBox组件来实现选择波段B


注:本程序用了image,button,ComboBox组件,
ENVI文件:http://pan.baidu.com/s/1cohuQq