+
+ // the following values *may* be modified
+ // by gdcmFile::GetImageDataIntoVectorRaw
+ // we save their initial value.
+ InitialSpp = Header->GetEntryByNumber(0x0028,0x0002);
+ InitialPhotInt = Header->GetEntryByNumber(0x0028,0x0004);
+ InitialPlanConfig = Header->GetEntryByNumber(0x0028,0x0006);
+
+ InitialBitsAllocated = Header->GetEntryByNumber(0x0028,0x0100);
+ InitialHighBit = Header->GetEntryByNumber(0x0028,0x0102);
+
+ // the following entries *may* be removed from the H table
+ // (NOT deleted ...) by gdcmFile::GetImageDataIntoVectorRaw
+ // we keep a pointer on them.
+ InitialRedLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1101);
+ InitialGreenLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1102);
+ InitialBlueLUTDescr = Header->GetDocEntryByNumber(0x0028,0x1103);
+
+ InitialRedLUTData = Header->GetDocEntryByNumber(0x0028,0x1201);
+ InitialGreenLUTData = Header->GetDocEntryByNumber(0x0028,0x1202);
+ InitialBlueLUTData = Header->GetDocEntryByNumber(0x0028,0x1203);
+ }
+}
+
+/**
+ * \ingroup gdcmFile
+ * \brief restores some initial values
+ * \warning not end user intended
+ */
+void gdcmFile::RestoreInitialValues()
+{
+ if ( Header->IsReadable() )
+ {
+ // the following values *may* have been modified
+ // by gdcmFile::GetImageDataIntoVectorRaw
+ // we restore their initial value.
+ if ( InitialSpp != "")
+ Header->SetEntryByNumber(InitialSpp,0x0028,0x0002);
+ if ( InitialPhotInt != "")
+ Header->SetEntryByNumber(InitialPhotInt,0x0028,0x0004);
+ if ( InitialPlanConfig != "")
+
+ Header->SetEntryByNumber(InitialPlanConfig,0x0028,0x0006);
+ if ( InitialBitsAllocated != "")
+ Header->SetEntryByNumber(InitialBitsAllocated,0x0028,0x0100);
+ if ( InitialHighBit != "")
+ Header->SetEntryByNumber(InitialHighBit,0x0028,0x0102);
+
+ // the following entries *may* be have been removed from the H table
+ // (NOT deleted ...) by gdcmFile::GetImageDataIntoVectorRaw
+ // we restore them.
+
+ if (InitialRedLUTDescr)
+ Header->AddEntry(InitialRedLUTDescr);
+ if (InitialGreenLUTDescr)
+ Header->AddEntry(InitialGreenLUTDescr);
+ if (InitialBlueLUTDescr)
+ Header->AddEntry(InitialBlueLUTDescr);
+
+ if (InitialRedLUTData)
+ Header->AddEntry(InitialBlueLUTDescr);
+ if (InitialGreenLUTData)
+ Header->AddEntry(InitialGreenLUTData);
+ if (InitialBlueLUTData)
+ Header->AddEntry(InitialBlueLUTData);
+ }