0

如何在映射到某些颜色的单元格中保存具有双值的 IRaster?例如,(-inf; -50] 映射到蓝色,[+50; +inf) 映射到黄色,其他是逐渐计算的。

4

1 回答 1

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");
于 2010-11-20T22:06:07.233 回答