X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFile.cxx;h=b21463b038b616c13f9afe77a69684ef461a12db;hb=3705811f0b24769b2222f7d5ad2b14f8fd932104;hp=1ad8c6a70c92dac89ba334c59bab418f62e7464b;hpb=4ef8257270e9d499e8c5ece74c4582bcb6c3f6a4;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 1ad8c6a7..b21463b0 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2005/11/02 10:15:04 $ - Version: $Revision: 1.299 $ + Date: $Date: 2005/11/05 13:24:39 $ + Version: $Revision: 1.302 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -469,9 +469,13 @@ float File::GetXSpacing() { nbValue = entry->GetValueCount(); // Can't use IsValueCountValid because of the complex heuristic. + if( nbValue !=2 ) + gdcmWarningMacro("ImagerPixelSpacing (0x0018,0x1164) " + << "has a wrong number of values :" << nbValue); + if( nbValue >= 3 ) xspacing = (float)entry->GetValue(2); - if( nbValue >= 2 ) + else if( nbValue >= 2 ) xspacing = (float)entry->GetValue(1); else xspacing = (float)entry->GetValue(0); @@ -489,6 +493,10 @@ float File::GetXSpacing() if( entry ) { nbValue = entry->GetValueCount(); + if( nbValue !=2 ) + gdcmWarningMacro("PixelSpacing (0x0018,0x0030) " + << "has a wrong number of values :" << nbValue); + if( nbValue >= 3 ) xspacing = (float)entry->GetValue(2); else if( nbValue >= 2 ) @@ -1471,19 +1479,18 @@ bool File::Write(std::string fileName, FileType writetype) e0000->SetString(sLen.str()); } - // Derma?.dcm does not have it...let's remove it FIXME FIXME + // FIXME : Derma?.dcm does not have it...let's remove it ?!? JPRx if( writetype != JPEG ) { - int i_lgPix = GetEntryLength(GrPixel, NumPixel); - if (i_lgPix != -2) - { - // no (GrPixel, NumPixel) element - std::string s_lgPix = Util::Format("%d", i_lgPix+12); - s_lgPix = Util::DicomString( s_lgPix.c_str() ); - InsertEntryString(s_lgPix,GrPixel, 0x0000); - } - } - + int i_lgPix = GetEntryLength(GrPixel, NumPixel); + if (i_lgPix != -2) + { + // no (GrPixel, NumPixel) element + std::string s_lgPix = Util::Format("%d", i_lgPix+12); + s_lgPix = Util::DicomString( s_lgPix.c_str() ); + InsertEntryString(s_lgPix,GrPixel, 0x0000); + } + } Document::WriteContent(fp, writetype); fp->close(); @@ -1794,9 +1801,9 @@ void File::ReadEncapsulatedBasicOffsetTable() uint32_t val = BasicOffsetTableItemValue[i]; BasicOffsetTableItemValue[i] = ( (val<<24) | ((val<<8) & 0x00ff0000) | - ((val>>8) & 0x0000ff00) | (val>>24) ); + ( (val>>8) & 0x0000ff00) | (val>>24) ); #endif - gdcmWarningMacro( "Read one length for: " << + gdcmDebugMacro( "Read one length for: " << std::hex << BasicOffsetTableItemValue[i] ); }