X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmFile.cxx;h=acc5acfae523a4f2e110f0972f1f657e1b244aeb;hb=721d134c6e594b9a23bf1ce002ed87bfbc1576a7;hp=5e83b61d4b9ac97bbe75ffc2490da5c8efddfd5f;hpb=a4cc79200b40be00c490fa4a9116dca626e1c5cf;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 5e83b61d..acc5acfa 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2007/09/17 12:16:02 $ - Version: $Revision: 1.337 $ + Date: $Date: 2007/10/23 15:52:33 $ + Version: $Revision: 1.341 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -568,8 +568,6 @@ int File::GetTSize() } } - - /** * \brief gets the info from 0018,1164 : ImagerPixelSpacing * then 0028,0030 : Pixel Spacing @@ -1455,6 +1453,13 @@ bool File::IsPaletteColor() { return true; } + + // MONOCHROME + [Enhanced CT Image Storage] actually have Palettes + std::string sopClassUid = GetEntryString( 0x0008, 0x0016 ); + if (Util::DicomStringEqual( sopClassUid, "1.2.840.10008.5.1.4.1.1.2.1")) + { + return true; + } if ( PhotometricInterp == GDCM_UNFOUND ) { gdcmDebugMacro( "Not found : Palette color (0028,0004)"); @@ -1469,7 +1474,7 @@ bool File::IsPaletteColor() */ bool File::IsYBRFull() { - std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 ); + std::string PhotometricInterp = GetEntryString( 0x0028, 0x0004 ); if ( PhotometricInterp == "YBR_FULL" ) { return true; @@ -1508,7 +1513,13 @@ bool File::HasLUT() return false; } // Red Palette Color Lookup Table Data - if ( !GetDocEntry(0x0028,0x1201) ) + bool segmented; + segmented = GetDocEntry(0x0028,0x1221) && + GetDocEntry(0x0028,0x1222) && + GetDocEntry(0x0028,0x1223); + if( segmented ) return true; + + if( !GetDocEntry(0x0028,0x1201) ) { return false; } @@ -2008,7 +2019,7 @@ bool File::Write(std::string fileName, FileType writetype) InsertEntryString(s_lgPix,GrPixel, 0x0000, "UL"); } } - Document::WriteContent(fp, writetype); + Document::WriteContent(fp, writetype,false,false); fp->close(); delete fp;