会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
qb371
博客园
首页
新随笔
联系
管理
订阅
栅格数据的像素值保存问题
使用ArcEngine修改栅格数据的像素值时,要调用IRasterEdit接口的刷新方法,并用C#回收资源,否则像素值可能无法保存成功,出现像素值为零的情况。相关代码如下:
//Create a raster from the dataset. IRaster raster = rasterDataset.CreateFullRaster(); //Create a pixel block using the weight and height of the raster dataset. //If the raster dataset is large, a smaller pixel block should be used. //Refer to the topic "How to access pixel data using a raster cursor". IPnt blocksize = new PntClass(); blocksize.SetCoords(width, height); IPixelBlock3 pixelblock = raster.CreatePixelBlock(blocksize) as IPixelBlock3; //Populate some pixel values to the pixel block. System.Array pixels; pixels = (System.Array)pixelblock.get_PixelData(0); m_pSeismicIntensityModel.SetPixelBlock(EQCenter.X, EQCenter.Y, magnitude, EQSrcDepth, pLowerLeft.X, pLowerLeft.Y, width, height, xCell, yCell, ref pixels); pixelblock.set_PixelData(0, (System.Array)pixels); //Define the location that the upper left corner of the pixel block is to write. IPnt upperLeft = new PntClass(); upperLeft.SetCoords(0, 0); //Write the pixel block. IRasterEdit rasterEdit = (IRasterEdit)raster; rasterEdit.Write(upperLeft, (IPixelBlock)pixelblock); rasterEdit.Refresh(); GC.Collect(); //Release rasterEdit explicitly. System.Runtime.InteropServices.Marshal.ReleaseComObject(rasterEdit);
posted @
2011-08-15 16:44
qb371
阅读(
793
) 评论(
0
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部
公告