AE IRasterCursor 改变栅格图层像素值
1 public void ChangePixelValue(double xMax, double xMin, double yMax, double yMin,double[,] PixelChanged)
2 {
3 IRaster pRaster = thisRasterLayer.Raster;
4 IRaster2 pRaster2 = pRaster as IRaster2;
5
6 //地图坐标转换为图中行列值
7 rowMax = pRaster2.ToPixelRow(yMin);
8 rowMin = pRaster2.ToPixelRow(yMax);
9 columnMin = pRaster2.ToPixelColumn(xMin);
10 columnMax = pRaster2.ToPixelColumn(xMax);
11
12 int Height = rowMax - rowMin + 1;
13 int Width = columnMax - columnMin + 1;
14
15 //按照需要的大小建立一个空的PixelBlock3
16 IPnt blocksize = new PntClass();
17 blocksize.SetCoords(Width, Height);
18
19 IPixelBlock3 pPixelBlock3 = pRaster.CreatePixelBlock(blocksize) as IPixelBlock3;
20
21 System.Array pixels = (System.Array)pPixelBlock3.get_PixelData(0);
22
23 //为新建的PixelBlock赋值
24 try
25 {
26 for (int i = 0; i < Height; i++)
27 {
28 for (int j = 0; j < Width; j++)
29 {
30 pixels.SetValue(Convert.ToByte(PixelChanged[i,j]), j, i);
31 }
32 }
33 }
34 catch (Exception ex)
35 {
36 MessageBox.Show(ex.Message);
37 }
38
39 //把像素值赋予新建的PixelBlock3
40 pPixelBlock3.set_PixelData(0, pixels);
41
42 //PixelBlock3应在的位置
43 blocksize.SetCoords(columnMin, rowMin);
44
45 //改变的像素值写入图层
46 IRasterEdit pRasterEdit = pRaster as IRasterEdit;
47 pRasterEdit.Write(blocksize, (IPixelBlock)pPixelBlock3);
48 pRasterEdit.Refresh();
49
50 System.Runtime.InteropServices.Marshal.ReleaseComObject(pRasterEdit);
51 }
//要保存的图层;
2 IRasterLayer pRasterLayer = axMapControl1.get_Layer(0) as IRasterLayer;
3 IRaster pRaster = pRasterLayer.Raster;
4 IRaster2 pRaster2 = pRaster as IRaster2;
5
6 ISaveAs pSaveAs = pRaster2 as ISaveAs;
7 pSaveAs.SaveAs(@"F:\Work\DEM高程矩阵\DEM高程矩阵\bin\Debug\渲染图层2.tif", null, "TIFF"); 引用地址http://www.bubuko.com/infodetail-156921.html
AE IRasterCursor 改变栅格图层像素值的更多相关文章
- AE IRasterCursor 获取栅格图层像素值
在编写使用栅格图层的代码时,常常要获取栅格图层的像素值(PixelValue).如果想获取某一点的像素值,可以使用IRaster2中的getPixelValue方法.但如果想要获得的是图层中的某一块甚 ...
- AE开发中栅格图层实现分级渲染
GP工具IDW执行后,生成的栅格图层是黑白二色,需要手动进行分级渲染,似乎不是所有栅格图层都可以进行分级渲染,注意异常处理.注意ARCMAP中是有颜色的,无需自己处理. IRasterClassify ...
- iOS图片的伪裁剪(改变图片的像素值)
0x00 原理 利用一张图片事先画好的图片(以下称为蒙板),盖在要被裁剪的的图片上,然后遍历蒙板上的像素点,修改被裁剪图片对应位置的像素的色值即可得到一些我们想要的不规则图片了(比如人脸) 0x01 ...
- (八)WebGIS中栅格图层的设计
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1. 前言 我们在上一章里了解到WebGIS中栅格图层的本质—— ...
- 按照不规则多边形shp文件分割底层栅格文件tif,统计不同栅格的属性值
我想做到,按照voronoi多边形分割地图土地利用类型文件,统计每个多边形内不同地物的种类和数量.-----如图: 我的第一个想法是:首先用上层多边形将下层栅格图切割开来,然后就可以分别统计栅格内的地 ...
- C#+arcengine获得栅格数据的像素值(高程)
此文问获得栅格数据的像元值(即高程),有可能部分见解不到位,望大神看到了不惜指教! /// <summary> /// 得到高程(通过像素值) /// </summ ...
- PIE SDK栅格图层渲染变化事件监听
1. 功能简介 通过PIE SDK加载图层后,会默认的赋值给数据一个渲染.当用户重新给数据赋值Render或改变数据显示效果时,会触发渲染变化事件. 所谓的事件监听是在事件触发时,将执行用户指定的函数 ...
- ArcGIS二次开发之读取遥感图像像素值的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 首先是读取遥感图像的R.G.B波段数据的做法.读取R.G.B波段数据的像素值主要通过IRaster接口的Read方法在 ...
- YUV与像素值之间的关系
一幅彩色图像的基本要素是什么? 说白了,一幅图像包括的基本东西就是二进制数据,其容量大小实质即为二进制数据的多少.一幅1920x1080像素的YUV422的图像,大小是1920X1080X2=4147 ...
随机推荐
- system占用80端口的问题
80端口被占用的问题 首先可以看看是不是iis占用了.如果是的话.修改为其他端口即可. 如果不是.. 在cmd中输入命令netstat -ano 查看是不是system占用了80端口? 如果是syst ...
- php 函数strpos()
strpos() 函数查找字符串在另一字符串中第一次出现的位置. strpos(string,find,start) 返回 从string中的start位置开始找find第一次出现的位置 注意: s ...
- 【引】objective-c,6:Autorelease Pool
参考博客: http://blog.leichunfeng.com/blog/2015/05/31/objective-c-autorelease-pool-implementation-princi ...
- kbengine里如何使用git快速下载项目?
项目有两个镜像,github[https://github.com/kbengine/kbengine.git] ,osc开源中国[https://git.oschina.net/likecg/kbe ...
- day26 分布式监控系统开发
本节内容 为什么要做监控? 常用监控系统设计讨论 监控系统架构设计 监控表结构设计 为什么要做监控? –熟悉IT监控系统的设计原理 –开发一个简版的类Zabbix监控系统 –掌握自动化开发项目的程序设 ...
- 手写json
json的意思是JavaScript 对象表示法 '{"0":0,"b":[3,4,5],"c":"0","d ...
- 简单配置和使用Maven
1,下载Maven 从:https://maven.apache.org/download.cgi 其实两个都一样, 2,安装过程 解压你下载的包,随意放哪里都可以 ,假设 我放在了 D:\JavaT ...
- Eclipse中将Java项目转换成Web项目的方法
前言: 用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个java工程,将无法在Tomcat中进行部署运行. 方法: 1.找到.project文件,找到里面的<n ...
- javascript 利用匿名函数对象给你异步回调方法传参数
先来创建一个匿名函数对象: /*** * 匿名函数 */ var callChangeBtn=new function(bugBtn){ this.chage=function(json){ bugB ...
- linux 1-100的累加
[ ] 判断式.它的使用和test命令一样 [ ]的判断符,只会返回2种值.0(真) 非0(假) -gt 大于-lt 小于-eq 等于-ne 不等于-ge 大于等于-le 小于等于 while ...