private void SetDataProviderByFile(string fname, params string[] options) { try { _dataProvider = GeoDataDriver.Open(fname, enumDataProviderAccess.ReadOnly, options) as IRasterDataProvider; _dataProviderCopy = GeoDataDriver.Open(fname, enumDataProviderAccess.ReadOnly, options) as IRasterDataProvider; CheckDataProvider(); _width = _dataProviderCopy.Width; _heigth = _dataProviderCopy.Height; _bandCount = _dataProviderCopy.BandCount; _readPixelHelper = new ReadPixelHelper(_dataProviderCopy); } catch (Exception ex) { throw new CreateDataProviderFailedByFileName(fname, ex); } if (_dataProvider == null) { throw new CreateDataProviderFailedByFileName(fname); } }
public void Dispose() { if (_readPixelHelper != null) { _readPixelHelper.Dispose(); _readPixelHelper = null; } if (_tileBitmapProvider != null) { _tileBitmapProvider.Dispose(); _tileBitmapProvider = null; } if (_bitmap != null) { _bitmap.Dispose(); _bitmap = null; } if (_dataProviderCopy != null) { IUpdateCoordEnvelope u = _dataProviderCopy as IUpdateCoordEnvelope; if (u != null) { u.IsStoreHeaderChanged = false; } _dataProviderCopy.Dispose(); _dataProviderCopy = null; } if (_dataProvider != null) { _dataProvider.Dispose(); _dataProvider = null; } if (_firstBitmap != null) { _firstBitmap.Dispose(); _firstBitmap = null; } _envelope = null; _canvas = null; }