]> Creatis software - gdcm.git/commitdiff
When 'Pixel Aspect Ratio' exists, don't add a default 'Pixel Spacing'
authorjpr <jpr>
Tue, 28 Aug 2007 09:29:26 +0000 (09:29 +0000)
committerjpr <jpr>
Tue, 28 Aug 2007 09:29:26 +0000 (09:29 +0000)
src/gdcmDocEntry.cxx
src/gdcmFileHelper.cxx

index afea104a6086d0d6e185d13f9d75e67b446a07bf..4d7f80e782755d7d62849489603bf8c5383cb1ec 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2007/07/27 09:49:31 $
-  Version:   $Revision: 1.91 $
+  Date:      $Date: 2007/08/28 09:29:26 $
+  Version:   $Revision: 1.92 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -69,7 +69,7 @@ DocEntry::~DocEntry()
 /**
  * \brief   Writes the common part of any DataEntry, SeqEntry
  * @param fp already open ofstream pointer
- * @param filetype type of the file (ACR, ImplicitVR, ExplicitVR, ...)
+ * @param filetype type of the file (ACR, ImplicitVR, ExplicitVR, JPEG, JPEG2000...)
  */
 void DocEntry::WriteContent(std::ofstream *fp, FileType filetype, bool insideMetaElements)
 {
@@ -125,20 +125,9 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype, bool insideMet
       uint16_t zero = 0;
       uint16_t shortLgr = (uint16_t)lgth;
 
-/*
-      if( IsVRUnknown() )
-      { 
-         // GDCM_VRUNKNOWN was stored in the Entry VR;
-         // deal with Entry as if TS were Implicit VR
-         binary_write(*fp, lgth);
-      }
-      else
-*/
       if( IsVRUnknown() )  
       {
-      // if VR was not set, we set it to "UN"
-      // (FileHelper::Write has no longer to switch to ImplicitVR 
-      // when undocumented VR DataElements exist!)
+      // if VR was not set by user, we set it to "UN"
          SetVR("UN");
          vr=GetVR();
       }      
@@ -152,7 +141,7 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype, bool insideMet
             binary_write(*fp, zero);
            if ( (filetype == JPEG || filetype == JPEG2000) && group == 0x7fe0 && elem == 0x0010)
             {
-               gdcmAssertMacro( GetVR() == "OW" );
+               // gdcmAssertMacro( GetVR() == "OW" ); //?!?
                binary_write(*fp, ffff);
             }  
             else if (vr == "SQ")
index 6c2c3f86e42db278afb929c52b2f3cb165f5912f..9005f118feabe1612282f3c4fdf41397838d90d1 100644 (file)
@@ -4,8 +4,8 @@
   Module:    $RCSfile: gdcmFileHelper.cxx,v $
   Language:  C++
 
-  Date:      $Date: 2007/08/27 16:14:47 $
-  Version:   $Revision: 1.122 $
+  Date:      $Date: 2007/08/28 09:29:26 $
+  Version:   $Revision: 1.123 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -1650,21 +1650,24 @@ void FileHelper::CheckMandatoryElements()
       }
    }
 
-   std::string pixelSpacing = FileInternal->GetEntryString(0x0028,0x0030);
-   if ( pixelSpacing == GDCM_UNFOUND )
+   std::string pixelAspectRatio = FileInternal->GetEntryString(0x0028,0x0034);
+   if ( pixelAspectRatio == GDCM_UNFOUND ) // avoid conflict with pixelSpacing !
    {
-      pixelSpacing = "1.0\\1.0";
-       // if missing, Pixel Spacing forced to "1.0\1.0"
-      CopyMandatoryEntry(0x0028,0x0030,pixelSpacing,"DS");
-   }
-   
-   // 'Imager Pixel Spacing' : defaulted to 'Pixel Spacing'
-   // --> This one is the *legal* one !
-   if ( ContentType != USER_OWN_IMAGE)
-   //  we write it only when we are *sure* the image comes from
-   //         an imager (see also 0008,0x0064)
-      CheckMandatoryEntry(0x0018,0x1164,pixelSpacing,"DS");
-
+      std::string pixelSpacing = FileInternal->GetEntryString(0x0028,0x0030);
+      if ( pixelSpacing == GDCM_UNFOUND )
+      {
+         pixelSpacing = "1.0\\1.0";
+          // if missing, Pixel Spacing forced to "1.0\1.0"
+         CopyMandatoryEntry(0x0028,0x0030,pixelSpacing,"DS");
+      }
+  
+      // 'Imager Pixel Spacing' : defaulted to 'Pixel Spacing'
+      // --> This one is the *legal* one !
+      if ( ContentType != USER_OWN_IMAGE)
+      //  we write it only when we are *sure* the image comes from
+      //         an imager (see also 0008,0x0064)
+         CheckMandatoryEntry(0x0018,0x1164,pixelSpacing,"DS");
+   } 
 /*
 ///Exact meaning of RETired fields
 
@@ -2267,8 +2270,3 @@ void RescaleFunction(ImageIOBase::IOComponentType bufferType,
     }
 }
 */
-
-      ::itk::ExceptionObject e(__FILE__, __LINE__, message.str().c_str(),ITK_LOCATION);
-      throw e;
-    }
-}