乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      基于C#的AE二次開發(fā)之影像數(shù)據(jù)的裁切(掩膜)

       印度阿三17 2020-01-12

      我的開發(fā)環(huán)境為ArcGIS Engine 10.2與Visual studio2010,主地圖名稱為axMapControl1,如果變動則需要修改(注意相關事件的添加與動態(tài)鏈接庫的引入)。

      • 效果預覽

      裁剪前裁剪后

      實現(xiàn)代碼

      • 引用類庫

      using ESRI.ArcGIS.esriSystem;
      using ESRI.ArcGIS.Carto;
      using ESRI.ArcGIS.Controls;
      using ESRI.ArcGIS.ADF;
      using ESRI.ArcGIS.SystemUI;
      using ESRI.ArcGIS.GeoAnalyst;
      using ESRI.ArcGIS.Geodatabase;
      using ESRI.ArcGIS.DataSourcesRaster;
      using ESRI.ArcGIS.DataSourcesGDB;
      using ESRI.ArcGIS.SpatialAnalyst;
      using ESRI.ArcGIS.Geometry;
      • 代碼實現(xiàn)

      private void 影像裁剪ToolStripMenuItem_Click(object sender, EventArgs e)
      {
          if (axMapControl1.get_Layer(0) is IFeatureLayer && axMapControl1.get_Layer(1) is IRasterLayer)
          {
              IFeatureLayer pFeatureLayer = axMapControl1.get_Layer(0) as IFeatureLayer;//輸入裁剪矢量圖層
              IRasterLayer pRasterLayer = axMapControl1.get_Layer(1) as IRasterLayer;//輸入裁剪柵格圖層
              IPolygon pPoly = pFeatureLayer.FeatureClass.GetFeature(0).Shape as IPolygon;//設置裁剪要素
              rasterClip(pRasterLayer, pPoly, "rasterClip0");//調(diào)用裁剪方法
              //強提醒,完成裁剪
              MessageBox.Show("裁剪完成!");
          }
      }
      
      /// <summary>
      /// 掩膜處理
      /// </summary>
      /// <param name="pRasterLayer">輸入裁剪柵格圖層</param>
      /// <param name="clipGeo">輸入裁剪矢量要素</param>
      /// <param name="FileName">輸出文件名稱</param>
      public void rasterClip(IRasterLayer pRasterLayer, IPolygon clipGeo, string FileName)
      {
          IRaster pRaster = pRasterLayer.Raster;//獲取柵格文件
          IRasterProps pProps = pRaster as IRasterProps;
          object cellSizeProvider = pProps.MeanCellSize().X;
          IGeoDataset pInputDataset = pRaster as IGeoDataset;
          IExtractionOp pExtractionOp = new RasterExtractionOp() as IExtractionOp;
          IRasterAnalysisEnvironment pRasterAnaEnvir = pExtractionOp as IRasterAnalysisEnvironment;
          pRasterAnaEnvir.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellSizeProvider);
          object extentProvider = clipGeo.Envelope;//獲取矢量圖形范圍
          object snapRasterData = Type.Missing;
          pRasterAnaEnvir.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvValue, ref extentProvider, ref snapRasterData);
          IGeoDataset pOutputDataset = pExtractionOp.Polygon(pInputDataset, clipGeo as IPolygon, true);
          IRaster clipRaster;  //裁切后得到的IRaster
          if (pOutputDataset is IRasterLayer)
          {
              IRasterLayer rasterLayer = pOutputDataset as IRasterLayer;
              clipRaster = rasterLayer.Raster;
          }
          else if (pOutputDataset is IRasterDataset)
          {
              IRasterDataset rasterDataset = pOutputDataset as IRasterDataset;
              clipRaster = rasterDataset.CreateDefaultRaster();
          }
          else if (pOutputDataset is IRaster)
          {
              clipRaster = pOutputDataset as IRaster;
          }
          else
          {
              return;
          }
          //保存裁切后得到的clipRaster,直接保存為tif影像文件
          IWorkspaceFactory pWKSF = new RasterWorkspaceFactory();
          //保存裁剪后的影像到本地路徑下
          string filepath = @"c:\dat\";
          
          //判斷文件夾是否存在,如果不存在新建文件夾
          if (false == System.IO.Directory.Exists(filepath))
          {
              //創(chuàng)建文件夾
              Directory.CreateDirectory(filepath);
          }
          IWorkspace pWorkspace = pWKSF.OpenFromFile(filepath, 0);
          ISaveAs pSaveAs = clipRaster as ISaveAs;
           //輸出要素類的名稱,文件后綴可以設置
          pSaveAs.SaveAs(FileName ".tif", pWorkspace, "TIFF");
      }
      • 導出圖像格式

      格式名稱字符串引用
      Imagine"IMAGINE Image"
      TIFF"TIFF"
      GRID"GRID"
      JPEG"JPG"
      JP2000"JP2"
      BMP"BMP"
      PNG"PNG"
      GIF"GIF"
      PCI Raster"PIX"
      X11 Pixmap"XPM"
      PCRaster"MAP"
      Memory Raster"MEM"
      HDF4"HDF4"
      BIL"BIL"
      BIP"BIP"
      BSQ"BSQ"
      Idrisi Raster Format"RST"
      ENVI Raster Format"ENVI"
      Geodatabase Raster"GDB"

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多