Exemplo n.º 1
0
void QgsRendererRasterPropertiesWidget::apply()
{
    mRasterLayer->brightnessFilter()->setBrightness( mSliderBrightness->value() );
    mRasterLayer->brightnessFilter()->setContrast( mSliderContrast->value() );

    QgsRasterRendererWidget* rendererWidget = dynamic_cast<QgsRasterRendererWidget*>( stackedWidget->currentWidget() );
    if ( rendererWidget )
    {
        mRasterLayer->setRenderer( rendererWidget->renderer() );
    }

    // Hue and saturation controls
    QgsHueSaturationFilter *hueSaturationFilter = mRasterLayer->hueSaturationFilter();
    if ( hueSaturationFilter )
    {
        hueSaturationFilter->setSaturation( sliderSaturation->value() );
        hueSaturationFilter->setGrayscaleMode(( QgsHueSaturationFilter::GrayscaleMode ) comboGrayscale->currentIndex() );
        hueSaturationFilter->setColorizeOn( mColorizeCheck->checkState() );
        hueSaturationFilter->setColorizeColor( btnColorizeColor->color() );
        hueSaturationFilter->setColorizeStrength( sliderColorizeStrength->value() );
    }

    QgsRasterResampleFilter* resampleFilter = mRasterLayer->resampleFilter();
    if ( resampleFilter )
    {
        QgsRasterResampler *zoomedInResampler = nullptr;
        QString zoomedInResamplingMethod = mZoomedInResamplingComboBox->currentText();
        if ( zoomedInResamplingMethod == tr( "Bilinear" ) )
        {
            zoomedInResampler = new QgsBilinearRasterResampler();
        }
        else if ( zoomedInResamplingMethod == tr( "Cubic" ) )
        {
            zoomedInResampler = new QgsCubicRasterResampler();
        }

        resampleFilter->setZoomedInResampler( zoomedInResampler );

        //raster resampling
        QgsRasterResampler *zoomedOutResampler = nullptr;
        QString zoomedOutResamplingMethod = mZoomedOutResamplingComboBox->currentText();
        if ( zoomedOutResamplingMethod == tr( "Average" ) )
        {
            zoomedOutResampler = new QgsBilinearRasterResampler();
        }

        resampleFilter->setZoomedOutResampler( zoomedOutResampler );

        resampleFilter->setMaxOversampling( mMaximumOversamplingSpinBox->value() );
    }

    mRasterLayer->setBlendMode( mBlendModeComboBox->blendMode() );
}
Exemplo n.º 2
0
QgsRasterResampleFilter* QgsRasterResampleFilter::clone() const
{
  QgsDebugMsgLevel( "Entered", 4 );
  QgsRasterResampleFilter * resampler = new QgsRasterResampleFilter( nullptr );
  if ( mZoomedInResampler )
  {
    resampler->setZoomedInResampler( mZoomedInResampler->clone() );
  }
  if ( mZoomedOutResampler )
  {
    resampler->setZoomedOutResampler( mZoomedOutResampler->clone() );
  }
  resampler->setMaxOversampling( mMaxOversampling );
  return resampler;
}
QgsRasterInterface * QgsRasterResampleFilter::clone() const
{
  QgsDebugMsg( "Entered" );
  QgsRasterResampleFilter * resampler = new QgsRasterResampleFilter( 0 );
  if ( mZoomedInResampler )
  {
    resampler->setZoomedInResampler( mZoomedInResampler->clone() );
  }
  if ( mZoomedOutResampler )
  {
    resampler->setZoomedOutResampler( mZoomedOutResampler->clone() );
  }
  resampler->setMaxOversampling( mMaxOversampling );
  return resampler;
}
void QgsRendererRasterPropertiesWidget::apply()
{
  mRasterLayer->brightnessFilter()->setBrightness( mSliderBrightness->value() );
  mRasterLayer->brightnessFilter()->setContrast( mSliderContrast->value() );

  QgsRasterRendererWidget* rendererWidget = dynamic_cast<QgsRasterRendererWidget*>( stackedWidget->currentWidget() );
  if ( rendererWidget )
  {
    QgsRasterRenderer* newRenderer = rendererWidget->renderer();

    // there are transparency related data stored in renderer instances, but they
    // are not configured in the widget, so we need to copy them over from existing renderer
    QgsRasterRenderer* oldRenderer = mRasterLayer->renderer();
    if ( oldRenderer )
      newRenderer->copyCommonProperties( oldRenderer );

    mRasterLayer->setRenderer( newRenderer );
  }

  // Hue and saturation controls
  QgsHueSaturationFilter *hueSaturationFilter = mRasterLayer->hueSaturationFilter();
  if ( hueSaturationFilter )
  {
    hueSaturationFilter->setSaturation( sliderSaturation->value() );
    hueSaturationFilter->setGrayscaleMode(( QgsHueSaturationFilter::GrayscaleMode ) comboGrayscale->currentIndex() );
    hueSaturationFilter->setColorizeOn( mColorizeCheck->checkState() );
    hueSaturationFilter->setColorizeColor( btnColorizeColor->color() );
    hueSaturationFilter->setColorizeStrength( sliderColorizeStrength->value() );
  }

  QgsRasterResampleFilter* resampleFilter = mRasterLayer->resampleFilter();
  if ( resampleFilter )
  {
    QgsRasterResampler *zoomedInResampler = nullptr;
    QString zoomedInResamplingMethod = mZoomedInResamplingComboBox->currentText();
    if ( zoomedInResamplingMethod == tr( "Bilinear" ) )
    {
      zoomedInResampler = new QgsBilinearRasterResampler();
    }
    else if ( zoomedInResamplingMethod == tr( "Cubic" ) )
    {
      zoomedInResampler = new QgsCubicRasterResampler();
    }

    resampleFilter->setZoomedInResampler( zoomedInResampler );

    //raster resampling
    QgsRasterResampler *zoomedOutResampler = nullptr;
    QString zoomedOutResamplingMethod = mZoomedOutResamplingComboBox->currentText();
    if ( zoomedOutResamplingMethod == tr( "Average" ) )
    {
      zoomedOutResampler = new QgsBilinearRasterResampler();
    }

    resampleFilter->setZoomedOutResampler( zoomedOutResampler );

    resampleFilter->setMaxOversampling( mMaximumOversamplingSpinBox->value() );
  }

  mRasterLayer->setBlendMode( mBlendModeComboBox->blendMode() );
}