public static bool CreateOverviews(OverviewCreateInfo info, string inputFilePath, Gdal.GDALProgressFuncDelegate progressFuncDelegate) { bool result = false; Dataset dataset = null; try { Access access = OverviewOptionEnum.OverviewForamt.External == info.OverviewFormat ? Access.GA_ReadOnly : Access.GA_Update; Gdal.PushErrorHandler(GdalConfig.GdalHandlers.ErrorHandler); dataset = Gdal.Open(inputFilePath, access); Gdal.PopErrorHandler(); if (dataset == null) { return(result); } List <int> levels = info.LevelList; if (info.IsNeedCalcLevel) { levels = CalculateOverViewLevels(dataset); } if (levels.Count < 1) { return(result); } if (OverviewOptionEnum.OverviewForamt.External == info.OverviewFormat) { DeleteExternalOverviews(inputFilePath); } Gdal.PushErrorHandler(GdalConfig.GdalHandlers.ErrorHandler); if (dataset.BuildOverviews(info.OverviewResamplingOption.ToString(), levels.ToArray(), progressFuncDelegate, null) == (int)CPLErr.CE_None) { result = true; } Gdal.PopErrorHandler(); } catch (Exception ex) { //LoggerManager.WriteErrorLog(ex.Message); } finally { if (dataset != null) { dataset.FlushCache(); dataset.Dispose(); } } return(result); }
public OverviewCreateInfo GetOverviewCreateOptions() { OverviewCreateInfo overviewCreateInfo = new OverviewCreateInfo(); overviewCreateInfo.OverviewFormat = (OverviewOptionEnum.OverviewForamt)_overviewFormatComboBox.SelectedIndex; overviewCreateInfo.OverviewResamplingOption = (GdalEnum.ResamplingType)_overviewResamplingComboBox.SelectedValue; overviewCreateInfo.IsNeedCalcLevel = _calcLevelsCheckBox.Checked; overviewCreateInfo.OverviewCreationOptionsString = _creationOptionsTextBox.Text; if (!overviewCreateInfo.IsNeedCalcLevel) { overviewCreateInfo.LevelList = GetPyramidLevels(); } return(overviewCreateInfo); }
private bool SetOverviewCreateInfo() { _overviewCreateInfo = new OverviewCreateInfo(); _overviewCreateInfo = _overviewCreateOptionControl.GetOverviewCreateOptions(); _overviewCreateInfo.OverviewCreatePathInfo = _overviewCreatePathSettingControl.GetOverviewCreatePathInfo(); if (_overviewCreateInfo.OverviewCreatePathInfo.InputPathList.Count < 1) { return(false); } if (!_overviewCreateInfo.IsNeedCalcLevel && _overviewCreateInfo.LevelList.Count < 1) { return(false); } _overviewCreateOptionControl.SetOverviewProfileSetting(); LoggerManager.WriteOverviewCreateInfoLog(_overviewCreateInfo); return(true); }
private void InitOverviewCreateInfo() { _overviewCreateInfo = new OverviewCreateInfo(); }