diff --git a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx index 45ddb823bdebd17550073809f841e5f8542f9132..1085a23c6f8b86a0b6b7b4e76925f064e45332d1 100644 --- a/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx +++ b/Modules/IO/IOGDAL/src/otbGDALImageIO.cxx @@ -1758,8 +1758,22 @@ void GDALImageIO::InternalWriteImageInformation(const void* buffer) otbMsgDevMacro( << "GCP Count: " << dataset->GetGCPCount() ); // Write no-data flags + std::vector<bool> noDataValueAvailable; + bool ret = itk::ExposeMetaData<std::vector<bool> >(dict,MetaDataKey::NoDataValueAvailable,noDataValueAvailable); + std::vector<double> noDataValues; + itk::ExposeMetaData<std::vector<double> >(dict,MetaDataKey::NoDataValue,noDataValues); + if(ret) + { + for (int iBand = 0; iBand < dataset->GetRasterCount(); iBand++) + { + if(noDataValueAvailable[iBand]) + { + dataset->GetRasterBand(iBand+1)->SetNoDataValue(noDataValues[iBand]); + } + } + } } std::string GDALImageIO::FilenameToGdalDriverShortName(const std::string& name) const