2010-11-06 3 views
0

Как вы сохраняете IRaster с двойными значениями в своих ячейках, сопоставленных с некоторыми цветами? Например, (-inf; -50] отображается на синий, [+50; + inf) отображается на желтый, другие рассчитываются постепенно.ArcObjects: сохранение IRaster с двойными значениями, отображаемыми в цвета

ответ

0

Вычислено: вы должны сделать один растровый для каждой полосы (красный, зеленый и синий) со значениями в диапазоне [0; 255] (значения в каждой ячейке будут объединены с использованием цветовой модели RGB). Затем эти растры должны быть объединены в один через IBandCollection. Нижеприведенный код ниже приведен ниже:

// Create three rasters 
IRaster2 redRaster = ...; 
IRaster2 greenRaster = ...; 
IRaster2 blueRaster = ...; 

// Combine them 
IRasterBandCollection bands = (IRasterBandCollection)redRaster; // bands are appended to the red raster 
bands.AppendBand(((IRasterBandCollection)greenRaster).Item(0)); 
bands.AppendBand(((IRasterBandCollection)blueRaster).Item(0)); 

// Save as JPEG 
IWorkspace saveWorkspace = ...; 
String fileName = ...; 

((ISaveAs2)redRaster).SaveAs(fileName, saveWorkspace, "JPG");