IRasterStatistics Interface
今天用自己写的程序模块生成只包含一个波段的RasterDataset,用ArcGIS打开正常,用自己的程序打开灰度显示是错误的。比如这个波段的灰度范围本来是0~100,程序的TOCControl里却显示的是0~255。用ArcGIS打开一次以后,再用自己的程序打开显示就正常了。猜想是生成RasterDataset的时候有什么信息没有写进去,而TOCControl里的灰度范围就是从这些信息里读取的。后来尝试了在生成RasterDataset后调用IRasterStatistics接口的Recalculate方法[IRasterStatistic pRasterStatistic=pRasterBand.Statistics],发现就能正常读取灰度范围了。
所以,在读取栅格文件的时候,获取到RasterDataset,最好先用IRasterStatistics的Recalculate方法计算一下相关信息,就能消除因为数据集中不包含灰度范围信息而导致
TOCControl中灰度范围显示不正常的问题了。需要注意的是每一个波段都要这样处理。