]> Creatis software - gdcm.git/commitdiff
Add protected method : gdcmElValue * GetElValueByNumber(guint16 group, guint16...
authorjpr <jpr>
Tue, 6 May 2003 15:52:13 +0000 (15:52 +0000)
committerjpr <jpr>
Tue, 6 May 2003 15:52:13 +0000 (15:52 +0000)
  SetImageDataSize now updates both (7fe0,0000) and (7fe0,0010)

src/gdcmElValSet.cxx
src/gdcmFile.cxx
src/gdcmHeader.cxx
src/gdcmHeader.h

index 5d33ab6474792e64eee66ef5addd2f7f60a91097..70fd2a7a949702654f759191a2900cc89851038b 100644 (file)
@@ -90,9 +90,8 @@ int gdcmElValSet::SetElValueByNumber(string content,
           lgr = 2;
        else if( (vr == "UL") || (vr == "SL") )
           lgr = 4;
-       else 
-          lgr = content.length();
-          
+       else
+          lgr = content.length();         
        tagHt[key]->SetLength(lgr); 
        return 1;
 }
@@ -107,10 +106,14 @@ int gdcmElValSet::SetElValueByName(string content, string TagName) {
        if( (vr == "US") || (vr == "SS") ) 
           lgr = 2;
        else if( (vr == "UL") || (vr == "SL") )
-          lgr = 4;
+          lgr = 4;        
        else 
           lgr = content.length();
           
+// TODO : WARNING: le cas de l'element des pixels (7fe0,0010) n'est pas traite
+// par SetElValueByName
+// il faudra utiliser SetElValueByNumber
+          
        NameHt[TagName]->SetLength(lgr);
        return 1;               
 }
index 6c7914199d447796edfb0af4e1d31e4e2a94bd76..0284a5c2dbe48f746144e6e4eea24177d7f65dfe 100644 (file)
@@ -91,15 +91,15 @@ bool gdcmFile::ReadPixelData(void* destination) {
         IsExplicitVRLittleEndianTransferSyntax() ||
         IsExplicitVRBigEndianTransferSyntax()    ||
         IsDeflatedExplicitVRLittleEndianTransferSyntax() ) { 
-             
-         size_t ItemRead = fread(destination, lgrTotale, 1, fp);
-         if ( ItemRead != 1 ) {
-            CloseFile();
-            return false;
-         } else {
-            CloseFile();
-            return true;
-         }
+                    
+      size_t ItemRead = fread(destination, lgrTotale, 1, fp);
+      if ( ItemRead != 1 ) {
+         CloseFile();
+         return false;
+      } else {
+         CloseFile();
+         return true;
+      }
    }
          
    if (IsJPEGLossless()) {
@@ -127,8 +127,8 @@ bool gdcmFile::ReadPixelData(void* destination) {
       _IdDcmJpegFree (jpg);
       CloseFile();
       return true;
-   }     
-
+   }
+   
     printf ("Sorry, TransfertSyntax not yet taken into account ...\n");
     CloseFile();
     return false;
@@ -317,6 +317,7 @@ return;
  * \ingroup   gdcmFile
  * \brief TODO JPR
  * \warning doit-etre etre publique ?  FIXME JPR
+ * TODO : y a-t-il un inconvenient à fusioner ces 2 fonctions
  *
  * @param inData TODO JPR
  * @param ExpectedSize TODO JPR
@@ -327,6 +328,8 @@ int gdcmFile::SetImageData(void * inData, size_t ExpectedSize) {
    SetImageDataSize(ExpectedSize);
    PixelData = inData;
    lgrTotale = ExpectedSize;
+   
+   
    return(1);
 }
 
@@ -337,6 +340,7 @@ int gdcmFile::SetImageData(void * inData, size_t ExpectedSize) {
  * \brief TODO JPR
  * \
  * \warning WARNING doit-etre etre publique ? FIXME JPR
+ * TODO : y aurait il un inconvenient à fusionner ces 2 fonctions
  *
  * @param ImageDataSize TODO JPR
  *
@@ -345,15 +349,15 @@ int gdcmFile::SetImageData(void * inData, size_t ExpectedSize) {
 void gdcmFile::SetImageDataSize(size_t ImageDataSize) {
 
        string content1;
-       string content2;
        char car[20];
        
        // suppose que le ElValue (0x7fe0, 0x0010) existe ...
        
        sprintf(car,"%d",ImageDataSize);
-       content2=car;
-       SetPubElValByNumber(content2, 0x7fe0, 0x0010);
-       
+       gdcmElValue*a = GetElValueByNumber(0x7fe0, 0x0010);
+       a->SetLength(ImageDataSize);
+               
        ImageDataSize+=8;
        sprintf(car,"%d",ImageDataSize);
        content1=car;   
index 631b038d98e0a3048f5b3050a47e128cbe46b55f..d98074f56aea75c3da92ba280bee6fb97edce8ef 100644 (file)
@@ -1,4 +1,4 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.61 2003/05/05 14:13:59 frog Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.cxx,v 1.62 2003/05/06 15:52:13 jpr Exp $
 
 #include <stdio.h>
 #include <cerrno>
@@ -863,6 +863,18 @@ guint32 gdcmHeader::ReadInt32(void) {
    return g;
 }
 
+
+gdcmElValue* gdcmHeader::GetElValueByNumber(guint16 Group, guint16 Elem) {
+
+   gdcmElValue* elValue = PubElValSet.GetElementByNumber(Group, Elem);  
+   if (!elValue) {
+      dbg.Verbose(1, "gdcmHeader::GetElValueByNumber",
+                  "failed to Locate gdcmElValue");
+      return (gdcmElValue*)0;
+   }
+   return elValue;
+}
+
 /**
  * \ingroup gdcmHeader
  * \brief   Build a new Element Value from all the low level arguments. 
@@ -1292,7 +1304,11 @@ string gdcmHeader::GetElValRepByName(string TagName) {
  */
 int gdcmHeader::SetPubElValByNumber(string content, guint16 group,
                                     guint16 element)
+                                    
+//TODO  : homogeneiser les noms : SetPubElValByNumber   qui appelle PubElValSet.SetElValueByNumber 
+//        pourquoi pas            SetPubElValueByNumber ??
 {
+
    return (  PubElValSet.SetElValueByNumber (content, group, element) );
 }
 
index 3373b99a03d13f50f456c0933da8a9c448ea201f..3ccf8cf47efde914ce5a3ad82fe89bd68f0e0d5a 100644 (file)
@@ -1,4 +1,4 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.21 2003/05/05 14:13:59 frog Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.22 2003/05/06 15:52:13 jpr Exp $
 
 #ifndef GDCMHEADER_H
 #define GDCMHEADER_H
@@ -86,6 +86,7 @@ private:
    gdcmElValue * ReadNextElement(void);
    gdcmElValue * NewElValueByNumber(guint16 group, guint16 element);
    gdcmElValue * NewElValueByName(string name);
+
    void FindLength(gdcmElValue *);
    void FindVR(gdcmElValue *);
    void LoadElementValue(gdcmElValue *);
@@ -98,6 +99,8 @@ private:
 protected:
    FILE * fp;
    FileType filetype;
+   
+   gdcmElValue * GetElValueByNumber(guint16 group, guint16 element);
 
    guint16 SwapShort(guint16); // needed by gdcmFile
    guint32 SwapLong(guint32);  // for JPEG Files :-(