예제 #1
0
        public static IBandProvider GetBandProvider(string fname,
                                                    byte[] header1024, Access access,
                                                    IRasterDataProvider provider, Dictionary <string, string> datasetNames)
        {
            IBandProvider prd = null;

            if (!IsLoadedBandProviders)
            {
                RegisteredBandProviders = TryLoadRegisteredBandProviders();
            }
            prd = GetMatchedBandProvider(fname, header1024, RegisteredBandProviders, datasetNames);
            if (prd != null)
            {
                DataIdentify dataIdentify = prd.DataIdentify;
                prd.DataIdentify = new DataIdentify();
                prd = Activator.CreateInstance(prd.GetType()) as IBandProvider;
                prd.Init(fname, access == Access.GA_ReadOnly ? enumDataProviderAccess.ReadOnly : enumDataProviderAccess.Update, provider);
                prd.DataIdentify = dataIdentify;
            }
            return(prd);
        }