Skip to content

Commit

Permalink
raster save as VRT fixes and improvements, fixes #6821
Browse files Browse the repository at this point in the history
  • Loading branch information
blazek committed Dec 19, 2012
1 parent bcca81b commit 9d84a6a
Show file tree
Hide file tree
Showing 6 changed files with 366 additions and 261 deletions.
9 changes: 8 additions & 1 deletion src/app/qgisapp.cpp
Expand Up @@ -4131,7 +4131,14 @@ void QgisApp::saveAsRasterFile()
fileWriter.setPyramidsResampling( d.pyramidsResampling() );
fileWriter.setPyramidsFormat( d.pyramidsFormat() );

fileWriter.writeRaster( pipe, d.nColumns(), d.nRows(), d.outputRectangle(), d.outputCrs(), &pd );
QgsRasterFileWriter::WriterError err = fileWriter.writeRaster( pipe, d.nColumns(), d.nRows(), d.outputRectangle(), d.outputCrs(), &pd );
if ( err != QgsRasterFileWriter::NoError )
{
QMessageBox::warning( this, tr( "Error" ),
tr( "Cannot write raster error code: %1" ).arg( err ),
QMessageBox::Ok );

}
delete pipe;
}
}
Expand Down
16 changes: 5 additions & 11 deletions src/core/raster/qgscontrastenhancement.cpp
Expand Up @@ -55,29 +55,23 @@ QgsContrastEnhancement::QgsContrastEnhancement( QgsRasterDataType theDataType )
QgsContrastEnhancement::QgsContrastEnhancement( const QgsContrastEnhancement& ce )
{
mLookupTable = 0;
mEnhancementDirty = ce.mEnhancementDirty;
mContrastEnhancementAlgorithm = ce.mContrastEnhancementAlgorithm;
mContrastEnhancementFunction = 0;
mEnhancementDirty = true;
mRasterDataType = ce.mRasterDataType;

mMinimumValue = ce.mMinimumValue;
mMaximumValue = ce.mMaximumValue;
mRasterDataTypeRange = ce.mRasterDataTypeRange;

mLookupTableOffset = ce.mLookupTableOffset;
mLookupTableOffset = mMinimumValue * -1;

mContrastEnhancementFunction = new QgsContrastEnhancementFunction( mRasterDataType, mMinimumValue, mMaximumValue );
// setContrastEnhancementAlgorithm sets also QgsContrastEnhancementFunction
setContrastEnhancementAlgorithm( ce.mContrastEnhancementAlgorithm, false );

//If the data type is larger than 16-bit do not generate a lookup table
if ( mRasterDataTypeRange <= 65535.0 )
{
mLookupTable = new int[static_cast <int>( mRasterDataTypeRange+1 )];
if ( !ce.mEnhancementDirty )
{
for ( int myIterator = 0; myIterator <= mRasterDataTypeRange; myIterator++ )
{
mLookupTable[myIterator] = ce.mLookupTable[myIterator];
}
}
}
}

Expand Down

0 comments on commit 9d84a6a

Please sign in to comment.