void QgsSingleBandGrayRendererWidget::on_mLoadPushButton_clicked() { if ( !mRasterLayer ) { return; } QgsRasterDataProvider* provider = mRasterLayer->dataProvider(); if ( !provider ) { return; } int band = mGrayBandComboBox->itemData( mGrayBandComboBox->currentIndex() ).toInt(); double minVal = 0; double maxVal = 0; if ( mEstimateRadioButton->isChecked() ) { minVal = provider->minimumValue( band ); maxVal = provider->maximumValue( band ); } else if ( mActualRadioButton->isChecked() ) { QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band ); minVal = rasterBandStats.minimumValue; maxVal = rasterBandStats.maximumValue; } else if ( mCurrentExtentRadioButton->isChecked() ) { double minMax[2]; mRasterLayer->computeMinimumMaximumFromLastExtent( band, minMax ); minVal = minMax[0]; maxVal = minMax[1]; } else if ( mUseStdDevRadioButton->isChecked() ) { QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band ); double diff = mStdDevSpinBox->value() * rasterBandStats.stdDev; minVal = rasterBandStats.mean - diff; maxVal = rasterBandStats.mean + diff; } else { return; } mMinLineEdit->setText( QString::number( minVal ) ); mMaxLineEdit->setText( QString::number( maxVal ) ); }
void QgsMultiBandColorRendererWidget::loadMinMaxValueForBand( int band, QLineEdit* minEdit, QLineEdit* maxEdit ) { if ( !minEdit || !maxEdit || !mRasterLayer ) { return; } QgsRasterDataProvider* provider = mRasterLayer->dataProvider(); if ( !provider ) { return; } if ( band < 0 ) { minEdit->clear(); maxEdit->clear(); return; } double minVal = 0; double maxVal = 0; if ( mEstimateRadioButton->isChecked() ) { minVal = provider->minimumValue( band ); maxVal = provider->maximumValue( band ); } else if ( mActualRadioButton->isChecked() ) { QgsRasterBandStats rasterBandStats = mRasterLayer->bandStatistics( band ); minVal = rasterBandStats.minimumValue; maxVal = rasterBandStats.maximumValue; } else if ( mCurrentExtentRadioButton->isChecked() ) { double minMax[2]; mRasterLayer->computeMinimumMaximumFromLastExtent( band, minMax ); minVal = minMax[0]; maxVal = minMax[1]; } minEdit->setText( QString::number( minVal ) ); maxEdit->setText( QString::number( maxVal ) ); }