ArcObjects:用映射到颜色的双重值保存iraster
-
29-09-2019 - |
题
您如何在映射到某些颜色的单元格中保存用双重值的iraster?例如,(-inf; -50]映射为蓝色,[+50; +inf)映射到黄色,其他地图逐渐计算出来。
解决方案
弄清楚:您必须为每个频段(红色,绿色和蓝色)制作一个栅格,其值在范围内[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");
不隶属于 StackOverflow