From 8c08643db62a55c3a51288c07c1701d02c01bc78 Mon Sep 17 00:00:00 2001 From: jpr Date: Wed, 26 Oct 2005 06:07:26 +0000 Subject: [PATCH] Don't write elem 0x0000 -group length- of groups (but group 0x0002, where it's mandatory), to avoid writing wrong images. (Computing the length of a group with embedded Sequences is no so easy ...) --- src/gdcmElementSet.cxx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/gdcmElementSet.cxx b/src/gdcmElementSet.cxx index 6f1d9840..378ecebd 100644 --- a/src/gdcmElementSet.cxx +++ b/src/gdcmElementSet.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmElementSet.cxx,v $ Language: C++ - Date: $Date: 2005/10/24 16:00:47 $ - Version: $Revision: 1.67 $ + Date: $Date: 2005/10/26 06:07:26 $ + Version: $Revision: 1.68 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -54,8 +54,18 @@ void ElementSet::WriteContent(std::ofstream *fp, FileType filetype) for (TagDocEntryHT::const_iterator i = TagHT.begin(); i != TagHT.end(); ++i) - { - i->second->WriteContent(fp, filetype); + { + // FIXME : find a trick to know if current object is a + // gdcm::File or a gdcm::Document + //if ( dynamic_cast< File* > ( this ) ) { // ignore illegal groups } + + // Skip 'Group Length' element, since it may be wrong. + // except for Group 0002 + if ( (i->second)->GetElement() == 0x0000 + && (i->second)->GetElement() != 0x0002 ) + continue; + + i->second->WriteContent(fp, filetype); } } -- 2.49.0