sav文件为IDL程序中的二进制文件。sav文件是使用IDL的编译器编译pro文件得到的。下面介绍编译pro文件得到sav文件的做法。
工具/原料
IDL集成开发环境
IDL程序
方法/步骤
1、编写一个简单的IDL程序,保存为pro文件。代码如下:;重采样执行功能;输入放权纲轳薯缩比例和采样方法PROObject_呶蓟鹭毵ENVI_Resize::EXECUTEResize,$xfactor,yfactor,methodCOMPILE_OPTidl2,hidden;打开文件ENVI_OPEN_FILE,self.INFILENAME,R_FID=fidIF(fidEQ-1)THENRETURN;查询文件基本信息ENVI_FILE_QUERY,fid,dims=dims,nb=nbpos=LINDGEN(nb);重采样处理ENVI_DOIT,'resize_doit',$fid=fid,pos=pos,dims=dims,$interp=1,rfact=1./[XFACTOR,YFACTOR],$method=METHOD,$out_name=self.OUTFILENAMEEND;对象的析构函数PROObject_ENVI_Resize::CLEANUPCOMPILE_OPTidl2,hidden;关闭ENVI二次开发模式;需要注意,COM组件调用该功能的时候,必须设置如下参数:;在ENVI主菜单的File-Preference-Miscellaneous下;设置ExitIDLonExitfromENVI为'NO'ENVI_BATCH_EXITEND;ENVI初始化方法FUNCTIONObject_ENVI_Resize::initEnviCATCH,error_statusIFError_statusNE0THENBEGINRETURN,-1CATCH,/CANCELENDIF;ENVI二次开发模式初始化ENVI,/Restore_Base_Save_FilesENVI_BATCH_INITRETURN,1END;对象初始化函数;包含两个参数:输入和输出文件名。;FUNCTIONObject_ENVI_Resize::INIT,$inFileName,outFileNameCOMPILE_OPTidl2;文件名参数self.INFILENAME=inFileNameself.OUTFILENAME=outFileName;初始化ENVIINITFALG=self->INITENVI()RETURN,INITFALGEND;类定义PROOBJECT_ENVI_RESIZE__DEFINE;类定义结构体void={Object_ENVI_Resize,$inFileName:'',$outFileName:''$}END
2、使用IDL85集成环境打开pro文件(编译32位的sav使用32位的IDL集成环境,编译32位的sav使用64位的IDL集成环境),如下图:
3、单击工具栏上的编译按钮对pro文件进行编译,如下图:
4、在命令栏中输入命令将编译结果生成sav文件,输入命令如下:save,/routin娣定撰钠es,file=’E:\P锇栀劐箨ublish\object_envi_resize_define.sav’其中E:\Publish\object_envi_resize_define.sav为保存的全路径。到这里就生成了sav文件。