コード例 #1
0
ファイル: GBitmap2.cs プロジェクト: lulzzz/kiwi.server
 public Bitmap2(Bitmap bmp = null, string name = "", string dec = "", GRasterLayer gdalLayer = null, IGBand gdalBand = null)
 {
     _bitmap    = bmp;
     _name      = name;
     _dec       = dec;
     _gdalBand  = gdalBand;
     _gdalLayer = gdalLayer;
 }
コード例 #2
0
        /// <summary>
        /// 波段读取
        /// </summary>
        /// <param name="filePath"></param>
        /// <param name="parentNode"></param>
        private void ReadBand(string rasterFilename, TreeNode parentNode)
        {
            string       name   = parentNode.Text;
            GRasterLayer _layer = new GRasterLayer(rasterFilename);

            for (int i = 0; i < _layer.BandCollection.Count; i++)
            {
                IGBand band = _layer.BandCollection[i];
                band.BandName = name + "_波段_" + i;
                Bitmap2 bmp2 = new Bitmap2(bmp: band.GetBitmap(), name: band.BandName, gdalBand: band, gdalLayer: _layer);
                //获取band对应的bitmap格式图像,载入treedNode中
                _imageDic.Add(band.BandName, bmp2);
                TreeNode childrenNode = new TreeNode(band.BandName);
                Invoke(new UpdateTreeNodeHandler(UpdateTreeNode), parentNode, childrenNode);
            }
        }
コード例 #3
0
        public void Output(string outputDir)
        {
            Dataset readDs = _rasterLayer.PDataSet;
            Driver  drv    = Gdal.GetDriverByName("GTiff");

            string[] options = new string[] { "BLOCKXSIZE=" + readDs.RasterXSize, "BLOCKYSIZE=" + readDs.RasterYSize };
            Dataset  writeDs = drv.Create(outputDir, readDs.RasterXSize, readDs.RasterYSize, 1, _rasterLayer.PDataType, options);

            for (int i = 1; i <= _rasterLayer.BandCount; i++)
            {
                IGBand readBand  = _rasterLayer.BandCollection[i - 1];
                Band   writeBand = writeDs.GetRasterBand(i);
                writeBand.WriteRaster(0, 0, readDs.RasterXSize, readDs.RasterYSize, readBand.GetByteBuffer(), readDs.RasterXSize, readDs.RasterYSize, 0, 0);
            }
            writeDs.FlushCache();
        }
コード例 #4
0
        private void UpdateBands()
        {
            _bandIndexSave = new List <int>();
            ImageList imageList = new ImageList();

            for (int i = 0; i < _gdalLayer.BandCollection.Count; i++)
            {
                IGBand       band = _gdalLayer.BandCollection[i];
                ListViewItem lvi  = new ListViewItem
                {
                    ImageIndex = i
                };
                lvi.SubItems.Add(band.BandName);
                lvi.SubItems.Add(band.Width + "x" + band.Height);
                band_listView.Items.Add(lvi);
                imageList.Images.Add(band.GetBitmap());
            }
            band_listView.SmallImageList = imageList;
            band_listView.LargeImageList = imageList;
        }