ArcObjects:使用映射到颜色的双值保存 IRaster

发布于 2024-09-30 18:03:39 字数 80 浏览 9 评论 0原文

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

How do you save IRaster with double values in it's cells mapped to some colors? For example, (-inf; -50] maps to blue, [+50; +inf) maps to yellow, others are calculated gradually.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迎风吟唱 2024-10-07 18:03:39

弄清楚:您必须为每个波段(红色、绿色和蓝色)制作一个栅格,其值范围为 [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");

Figured out: you have to make one raster for each band (red, green and blue) with values in range [0; 255] (values in each cell will be combined using RGB color model). Then those rasters should be combined into one through IBandCollection. Code below illustrates:

// 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");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文