GIS

ArcObject : FileGDB 의 Blob 에서 파일 삽입, 읽기 (예: BLOB의 이미지 파일 읽기 및 등록)

조심이 2010. 12. 7. 11:48
반응형

FileGDB 에서 Blob 필드에서 파일 읽기

using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.esriSystem;
using System.IO;

  //blob 파일 읽기
  private void loadBlob(IFeatureWorkspace pFeatureWorkspace , string where)
          {
              try
              {
                  ITable pTable;
                  IQueryFilter pQueryFilter = new QueryFilter();

                  pQueryFilter.WhereClause = where;
                  pTable = pFeatureWorkspace.OpenTable("피쳐클래스 또는 테이블");

                  ICursor pCursor;
                  pCursor = pTable.Search(pQueryFilter, false);

                  IRow pRow;
                  pRow = pCursor.NextRow();

                  if (pRow != null)
                  {
                      //IMAGE 라는 Blob 형태의 필드
                      IMemoryBlobStream pMemoryBlobStaream = pRow.get_Value(pRow.Fields.FindField("IMAGE")) as IMemoryBlobStream;
                    
                      string imageName = pRow.get_Value(pRow.Fields.FindField("NAME")) as string;   //이미지 이름
                      
                      //현재실행경로에 저장
                      pMemoryBlobStaream.SaveToFile(Application.StartupPath + "\\" + imageName); 

                                      }
              }
              catch
              {
              }
          }


//Blob에 등록할때 사용
IMemoryBlobStream pMemoryBlobStream;
                    pMemoryBlobStream = new MemoryBlobStreamClass();

                    pMemoryBlobStream.LoadFromFile("파일경로");

 pFeature.set_Value(pFeature.Fields.FindField("IMAGE"), pMemoryBlobStream);

반응형