no longer depends on's programmers PMS = Preposterous Mood Swings ;).
* CLEANUP_ROUND (13) for gdcmPixelConvert
Substituted File::ParsePixelData() with PixelConvert::Print() new
method:
- src/gdcmParsePixels.cxx removed (only contained File::ParsePixelData())
- src/gdcmRLEFrame.cxx, gdcmJPEGFragment.cxx added. Added a ::Print()
method to those classes.
- src/gdcmFile.[cxx|h]:
-- Added a ::Print() method.
-- PixelConverter is now a reference instead of a member.
-- gdcmPython/gdcm.i: added "using namespace gdcm" in order for
gdcm_wrap.cxx to "understand" File::GetPixelConverter()
+2004-10-20 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
+ * src/gdcmDocument.cxx ftell() return properly stored in a long (i.e.
+ no longer depends on's programmers PMS = Preposterous Mood Swings ;).
+ * CLEANUP_ROUND (13) for gdcmPixelConvert
+ Substituted File::ParsePixelData() with PixelConvert::Print() new
+ method:
+ - src/gdcmParsePixels.cxx removed (only contained File::ParsePixelData())
+ - src/gdcmRLEFrame.cxx, gdcmJPEGFragment.cxx added. Added a ::Print()
+ method to those classes.
+ - src/gdcmFile.[cxx|h]:
+ -- Added a ::Print() method.
+ -- PixelConverter is now a reference instead of a member.
+ -- gdcmPython/gdcm.i: added "using namespace gdcm" in order for
+ gdcm_wrap.cxx to "understand" File::GetPixelConverter()
+
2004-10-18 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* Doc/CMakeLists.txt, doxygen.config.in: when dot is present the
collaboration diagram and inheritance diagram should be generated with
{
std::cout << std::endl << "==========================================="
<< std::endl;
- f1->ParsePixelData();
+ f1->GetPixelConverter()->Print();
std::cout << std::endl << "==========================================="
<< std::endl;
}
{
std::cout << std::endl << "==========================================="
<< std::endl;
- e2->ParsePixelData();
+ e2->GetPixelConverter()->Print();
std::cout << std::endl << "==========================================="
<< std::endl;
}
&& transferSyntaxName != "Uncompressed ACR-NEMA" ) {
std::cout << std::endl << "==========================================="
<< std::endl;
- f1->ParsePixelData();
+ f1->GetPixelConverter()->Print();
std::cout << std::endl << "==========================================="
<< std::endl;
}
&& transferSyntaxName != "Uncompressed ACR-NEMA" ) {
std::cout << std::endl << "==========================================="
<< std::endl;
- f1->ParsePixelData();
+ f1->GetPixelConverter()->Print();
std::cout << std::endl << "==========================================="
<< std::endl;
}
}
}
+using namespace gdcm;
%}
typedef unsigned short guint16;
typedef unsigned int guint32;
gdcmGlobal.cxx
gdcmHeader.cxx
gdcmHeaderHelper.cxx
+ gdcmJPEGFragment.cxx
gdcmJPEGFragmentsInfo.cxx
gdcmJpeg8.cxx
gdcmJpeg12.cxx
gdcmJpeg16.cxx
gdcmJpeg2000.cxx
- gdcmParsePixels.cxx
gdcmPixelConvert.cxx
+ gdcmRLEFrame.cxx
gdcmRLEFramesInfo.cxx
gdcmSeqEntry.cxx
gdcmSQItem.cxx
Program: gdcm
Module: $RCSfile: gdcmDictSet.cxx,v $
Language: C++
- Date: $Date: 2004/10/18 02:31:58 $
- Version: $Revision: 1.40 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.41 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
* \ingroup DictSet
* \brief Loads a dictionary from a specified file, and add it
* to already the existing ones contained in this DictSet.
- * @param fileName Absolute or relative filename containing the
+ * @param filename Absolute or relative filename containing the
* dictionary to load.
* @param name Symbolic name that be used as identifier of the newly
* created dictionary.
Program: gdcm
Module: $RCSfile: gdcmDocument.cxx,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:22 $
- Version: $Revision: 1.105 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.106 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
// encounter such an ill-formed image, we simply display a warning
// message and proceed on parsing (while crossing fingers).
std::ostringstream s;
- int filePosition = ftell(Fp);
+ long filePosition = ftell(Fp);
s << "Erroneous Group Length element length on : (" \
<< std::hex << group << " , " << element
<< ") -before- position x(" << filePosition << ")"
Program: gdcm
Module: $RCSfile: gdcmFile.cxx,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:22 $
- Version: $Revision: 1.145 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.146 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
ImageDataSize = ImageDataSizeRaw;
}
- PixelConverter.GrabInformationsFromHeader( HeaderInternal );
+ PixelConverter = new PixelConvert;
+ PixelConverter->GrabInformationsFromHeader( HeaderInternal );
}
SaveInitialValues();
}
}
FILE* fp = HeaderInternal->OpenFile();
- if ( PixelConverter.BuildRGBImage( fp ) )
+ if ( PixelConverter->BuildRGBImage( fp ) )
{
memmove( destination,
- (void*)PixelConverter.GetRGB(),
- PixelConverter.GetRGBSize() );
+ (void*)PixelConverter->GetRGB(),
+ PixelConverter->GetRGBSize() );
// now, it's an RGB image
// Lets's write it in the Header
}
else
{
- // PixelConverter.BuildRGBImage( fp ) failed probably because
- // PixelConverter.GetLUTRGBA() failed:
+ // PixelConverter->BuildRGBImage() failed probably because
+ // PixelConverter->GetLUTRGBA() failed:
// (gdcm-US-ALOKA-16.dcm), contains Segmented xxx Palette Color
// that are *more* than 65535 long ?!?
// No idea how to manage such an image !
}
FILE* fp = HeaderInternal->OpenFile();
- PixelConverter.ReadAndDecompressPixelData( fp );
+ PixelConverter->ReadAndDecompressPixelData( fp );
HeaderInternal->CloseFile();
memmove( destination,
- (void*)PixelConverter.GetDecompressed(),
- PixelConverter.GetDecompressedSize() );
+ (void*)PixelConverter->GetDecompressed(),
+ PixelConverter->GetDecompressedSize() );
- if ( ! PixelConverter.IsDecompressedRGB() )
+ if ( ! PixelConverter->IsDecompressedRGB() )
{
return;
}
}
/**
- * \brief Access to the underlying \ref PixelConvertver RGBA LUT
+ * \brief Access to the underlying \ref PixelConverter RGBA LUT
*/
uint8_t* File::GetLutRGBA()
{
- return PixelConverter.GetLutRGBA();
+ return PixelConverter->GetLutRGBA();
}
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmFile.h,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:22 $
- Version: $Revision: 1.63 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.64 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
/// Accessor to \ref ImageDataSizeRaw
size_t GetImageDataSizeRaw(){ return ImageDataSizeRaw; };
+ /// Accessor to \ref PixelConverter
+ PixelConvert* GetPixelConverter(){ return PixelConverter; };
+
uint8_t* GetImageData();
size_t GetImageDataIntoVector(void* destination, size_t maxSize);
uint8_t* GetImageDataRaw();
bool WriteDcmExplVR(std::string const& fileName);
bool WriteAcr (std::string const& fileName);
- // Don't look any longer for the code :
- // It's in file gdcmParsePixels.cxx
- bool ParsePixelData();
-
virtual bool SetEntryByNumber(std::string const& content,
uint16_t group, uint16_t element)
{
/// the destructor is in charge of deletion.
bool SelfHeader;
- /// wether already parsed
+ /// Wether already parsed or not
bool Parsed;
- /// FIXME
- PixelConvert PixelConverter;
-//
+ /// Utility pixel converter
+ PixelConvert* PixelConverter;
+
+/// FIXME
// --------------- Will be moved to a PixelData class
//
Program: gdcm
Module: $RCSfile: gdcmJPEGFragment.h,v $
Language: C++
- Date: $Date: 2004/10/14 22:35:01 $
- Version: $Revision: 1.3 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.4 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#define GDCMJPEGFRAGMENT_H
#include "gdcmCommon.h"
+#include <iostream>
namespace gdcm
{
friend class PixelConvert;
long Offset;
long Length;
- JPEGFragment()
- {
- Offset = 0;
- Length = 0;
- }
+public:
+ JPEGFragment();
+ void Print( std::string indent = "", std::ostream &os = std::cout );
};
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmJPEGFragmentsInfo.cxx,v $
Language: C++
- Date: $Date: 2004/10/12 04:35:46 $
- Version: $Revision: 1.2 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.3 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
namespace gdcm
{
+/**
+ * \brief Default destructor
+ */
JPEGFragmentsInfo::~JPEGFragmentsInfo()
{
for(JPEGFragmentsList::iterator it = Fragments.begin();
}
Fragments.clear();
}
+
+/**
+ * \brief Print self.
+ * @param indent Indentation string to be prepended during printing.
+ * @param os Stream to print to.
+ */
+void JPEGFragmentsInfo::Print( std::string indent, std::ostream &os )
+{
+ os << indent
+ << "----------------- JPEG fragments --------------------------------"
+ << std::endl;
+ os << indent
+ << "Total number of fragments : " << Fragments.size()
+ << std::endl;
+ int fragmentNumber = 0;
+ for(JPEGFragmentsList::iterator it = Fragments.begin();
+ it != Fragments.end();
+ ++it)
+ {
+ os << indent
+ << " fragment number :" << fragmentNumber++;
+ (*it)->Print( indent + " ", os );
+ os << std::endl;
+ }
+}
+
+
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmJPEGFragmentsInfo.h,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:22 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.5 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include "gdcmJPEGFragment.h"
#include <list>
+#include <iostream>
namespace gdcm
{
JPEGFragmentsList Fragments;
public:
~JPEGFragmentsInfo();
+ void Print( std::string indent = "", std::ostream &os = std::cout );
};
} // end namespace gdcm
+++ /dev/null
-/*=========================================================================
-
- Program: gdcm
- Module: $RCSfile: gdcmParsePixels.cxx,v $
- Language: C++
- Date: $Date: 2004/10/12 04:35:46 $
- Version: $Revision: 1.12 $
-
- Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
- l'Image). All rights reserved. See Doc/License.txt or
- http://www.creatis.insa-lyon.fr/Public/Gdcm/License.html for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-
-#include "gdcmCommon.h"
-#include "gdcmFile.h"
-
-namespace gdcm
-{
-
-#define str2num(str, typeNum) *((typeNum *)(str))
-
-//-----------------------------------------------------------------------------
-/**
- * \ingroup File
- * \brief Parse pixel data from disk and *prints* the result
- * \ For multi-fragment Jpeg/Rle files checking purpose *only*
- * \ Allows to 'see' if the file *does* conform
- * \ (some of them do not)
- * \ with Dicom Part 3, Annex A (PS 3.5-2003, page 58, page 85)
- *
- */
-bool File::ParsePixelData(void) {
-// DO NOT remove the printf s.
-// The ONLY purpose of this method is to PRINT the content
- FILE* fp;
-
- if ( !(fp=GetHeader()->OpenFile()))
- return false;
-
- if ( fseek(fp, GetHeader()->GetPixelOffset(), SEEK_SET) == -1 ) {
- GetHeader()->CloseFile();
- return false;
- }
-
- if ( !GetHeader()->IsDicomV3() ||
- GetHeader()->IsImplicitVRLittleEndianTransferSyntax() ||
- GetHeader()->IsExplicitVRLittleEndianTransferSyntax() ||
- GetHeader()->IsExplicitVRBigEndianTransferSyntax() ||
- GetHeader()->IsDeflatedExplicitVRLittleEndianTransferSyntax() ) {
-
- printf ("File::ParsePixelData : non JPEG/RLE File\n");
- return false;
- }
-
- int nb;
- std::string str_nb=GetHeader()->GetEntryByNumber(0x0028,0x0100);
- if (str_nb == GDCM_UNFOUND ) {
- nb = 16;
- } else {
- nb = atoi(str_nb.c_str() );
- if (nb == 12) nb =16;
- }
- //int nBytes= nb/8; //FIXME
-
- //int taille = GetHeader()->GetXSize() * GetHeader()->GetYSize() * GetHeader()->GetSamplesPerPixel();
-
- printf ("Checking the Dicom-encapsulated Jpeg/RLE Pixels\n");
-
- uint16_t ItemTagGr,ItemTagEl;
- int ln;
- long ftellRes;
- //char * destination = NULL;
-
- // -------------------- for Parsing : Position on begining of Jpeg/RLE Pixels
-
- if( !GetHeader()->IsRLELossLessTransferSyntax()) {
-
- // JPEG Image
- ftellRes=ftell(fp);
- fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
- fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
- ftellRes=ftell(fp);
- fread(&ln,4,1,fp);
- if(GetHeader()->GetSwapCode())
- ln=GetHeader()->SwapLong(ln); // Basic Offset Table Item Length
- printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
- (unsigned)ftellRes,ln,ln);
- if (ln != 0) {
- // What is it used for ??
- char * BasicOffsetTableItemValue= new char[ln+1];
- fread(BasicOffsetTableItemValue,ln,1,fp);
- uint32_t a;
- for (int i=0;i<ln;i+=4){
- a=str2num(&BasicOffsetTableItemValue[i],uint32_t);
- printf(" x(%08x) %d\n",a,a);
- }
- }
-
- ftellRes=ftell(fp);
- fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
- fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
-
- while ( ( ItemTagGr==0xfffe) && (ItemTagEl!=0xe0dd) ) { // Parse fragments
-
- ftellRes=ftell(fp);
- fread(&ln,4,1,fp);
- if(GetHeader()->GetSwapCode())
- ln=GetHeader()->SwapLong(ln); // length
- printf(" at %x : fragment length %d x(%08x)\n",
- (unsigned)ftellRes, ln,ln);
-
- // destination += taille * nBytes; // location in user's memory
- //printf (" Destination will be x(%x) = %d \n",
- // destination,destination );
-
- // ------------------------
- fseek(fp,ln,SEEK_CUR); // skipping (not reading) fragment pixels
- // ------------------------
-
- ftellRes=ftell(fp);
- fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
- fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
- }
-
- } else {
-
- // RLE Image
- long RleSegmentLength[15],fragmentLength;
- uint32_t nbRleSegments;
- uint32_t RleSegmentOffsetTable[15];
- ftellRes=ftell(fp);
- // Basic Offset Table with Item Value
- // Item Tag
- fread(&ItemTagGr,2,1,fp); //Reading (fffe):Basic Offset Table Item Tag Gr
- fread(&ItemTagEl,2,1,fp); //Reading (e000):Basic Offset Table Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
- // Item Length
- ftellRes=ftell(fp);
- fread(&ln,4,1,fp);
- if(GetHeader()->GetSwapCode())
- ln=GetHeader()->SwapLong(ln); // Basic Offset Table Item Length
- printf("at %x : Basic Offset Table Item Length (\?\?) %d x(%08x)\n",
- (unsigned)ftellRes,ln,ln);
- if (ln != 0) {
- // What is it used for ??
- char * BasicOffsetTableItemValue= new char[ln+1];
- fread(BasicOffsetTableItemValue,ln,1,fp);
- uint32_t a;
- for (int i=0;i<ln;i+=4){
- a=str2num(&BasicOffsetTableItemValue[i],uint32_t);
- printf(" x(%08x) %d\n",a,a);
- }
- }
-
- ftellRes=ftell(fp);
- fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
- fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
-
- // while 'Sequence Delimiter Item' (fffe,e0dd) not found
- while ( ( ItemTagGr == 0xfffe) && (ItemTagEl != 0xe0dd) ) {
- // Parse fragments of the current Fragment (Frame)
- ftellRes=ftell(fp);
- fread(&fragmentLength,4,1,fp);
- if(GetHeader()->GetSwapCode())
- fragmentLength=GetHeader()->SwapLong(fragmentLength); // length
- printf(" at %x : 'fragment' length %d x(%08x)\n",
- (unsigned)ftellRes, (unsigned)fragmentLength,(unsigned)fragmentLength);
-
- //------------------ scanning (not reading) fragment pixels
-
- fread(&nbRleSegments,4,1,fp); // Reading : Number of RLE Segments
- if(GetHeader()->GetSwapCode())
- nbRleSegments=GetHeader()->SwapLong(nbRleSegments);
- printf(" Nb of RLE Segments : %d\n",nbRleSegments);
-
- for(int k=1; k<=15; k++) { // Reading RLE Segments Offset Table
- ftellRes=ftell(fp);
- fread(&RleSegmentOffsetTable[k],4,1,fp);
- if(GetHeader()->GetSwapCode())
- RleSegmentOffsetTable[k]=GetHeader()->SwapLong(RleSegmentOffsetTable[k]);
- printf(" at : %x Offset Segment %d : %d (%x)\n",
- (unsigned)ftellRes,k,RleSegmentOffsetTable[k],
- RleSegmentOffsetTable[k]);
- }
-
- if (nbRleSegments>1) { // skipping (not reading) RLE Segments
- for(unsigned int k=1; k<=nbRleSegments-1; k++) {
- RleSegmentLength[k]= RleSegmentOffsetTable[k+1]
- - RleSegmentOffsetTable[k];
- ftellRes=ftell(fp);
- printf (" Segment %d : Length = %d x(%x) Start at %x\n",
- k,(unsigned)RleSegmentLength[k],(unsigned)RleSegmentLength[k], (unsigned)ftellRes);
- fseek(fp,RleSegmentLength[k],SEEK_CUR);
- }
- }
- RleSegmentLength[nbRleSegments]= fragmentLength
- - RleSegmentOffsetTable[nbRleSegments];
- ftellRes=ftell(fp);
- printf (" Segment %d : Length = %d x(%x) Start at %x\n",
- nbRleSegments,(unsigned)RleSegmentLength[nbRleSegments],
- (unsigned)RleSegmentLength[nbRleSegments],(unsigned)ftellRes);
-
- fseek(fp,RleSegmentLength[nbRleSegments],SEEK_CUR);
-
- // ------------------ end of scanning fragment pixels
-
- ftellRes=ftell(fp);
- fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
- fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
- if(GetHeader()->GetSwapCode()) {
- ItemTagGr=GetHeader()->SwapShort(ItemTagGr);
- ItemTagEl=GetHeader()->SwapShort(ItemTagEl);
- }
- printf ("at %x : ItemTag (should be fffe,e000 or e0dd): %04x,%04x\n",
- (unsigned)ftellRes,ItemTagGr,ItemTagEl );
- }
- }
- return true;
-}
-
-//-----------------------------------------------------------------------------
-} // end namespace gdcm
-
Program: gdcm
Module: $RCSfile: gdcmPixelConvert.cxx,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:22 $
- Version: $Revision: 1.15 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.16 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
/**
* \brief Predicate to know wether the image[s] (once decompressed) is RGB.
- * \note See comments of \ref HandleColor
+ * \note See comments of \ref ConvertHandleColor
*/
bool PixelConvert::IsDecompressedRGB()
{
return true;
}
+/**
+ * \brief Print self.
+ * @param indent Indentation string to be prepended during printing.
+ * @param os Stream to print to.
+ */
+void PixelConvert::Print( std::string indent, std::ostream &os )
+{
+ os << indent
+ << "--- Pixel information -------------------------"
+ << std::endl;
+ os << indent
+ << "Pixel Data: offset " << PixelOffset
+ << " x" << std::hex << PixelOffset << std::dec
+ << " length " << PixelDataLength
+ << " x" << std::hex << PixelDataLength << std::dec
+ << std::endl;
+
+ if ( IsRLELossless )
+ {
+ if ( RLEInfo )
+ {
+ RLEInfo->Print( indent, os );
+ }
+ else
+ {
+ dbg.Verbose(0, "PixelConvert::Print: set as RLE file "
+ "but NO RLEinfo present.");
+ }
+ }
+
+ if ( IsJPEG2000 || IsJPEGLossless )
+ {
+ if ( JPEGInfo )
+ {
+ JPEGInfo->Print( indent, os );
+ }
+ else
+ {
+ dbg.Verbose(0, "PixelConvert::Print: set as JPEG file "
+ "but NO JPEGinfo present.");
+ }
+ }
+}
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmPixelConvert.h,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:23 $
- Version: $Revision: 1.10 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.11 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
//// Predicates:
bool IsDecompressedRGB();
+ void Print( std::string indent = "", std::ostream &os = std::cout );
+
// In progress
void GrabInformationsFromHeader( Header* header );
bool ReadAndDecompressPixelData( FILE* fp );
Program: gdcm
Module: $RCSfile: gdcmRLEFrame.h,v $
Language: C++
- Date: $Date: 2004/10/18 12:49:23 $
- Version: $Revision: 1.6 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.7 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#define GDCMRLEFRAME_H
#include "gdcmCommon.h"
+#include <iostream>
namespace gdcm
{
int NumberFragments;
long Offset[15];
long Length[15];
+public:
RLEFrame() { NumberFragments = 0; }
+ void Print( std::string indent = "", std::ostream &os = std::cout );
};
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmRLEFramesInfo.cxx,v $
Language: C++
- Date: $Date: 2004/10/12 04:35:47 $
- Version: $Revision: 1.2 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.3 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
}
Frames.clear();
}
+
+/**
+ * \brief Print self.
+ * @param indent Indentation string to be prepended during printing.
+ * @param os Stream to print to.
+ */
+void RLEFramesInfo::Print( std::string indent, std::ostream &os )
+{
+ os << indent
+ << "----------------- RLE frames --------------------------------"
+ << std::endl;
+ os << indent
+ << "Total number of Frames : " << Frames.size()
+ << std::endl;
+ int frameNumber = 0;
+ for(RLEFrameList::iterator it = Frames.begin(); it != Frames.end(); ++it)
+ {
+ os << indent
+ << " frame number :" << frameNumber++
+ << std::endl;
+ (*it)->Print( indent + " ", os );
+ }
+}
+
} // end namespace gdcm
Program: gdcm
Module: $RCSfile: gdcmRLEFramesInfo.h,v $
Language: C++
- Date: $Date: 2004/10/12 04:35:47 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2004/10/20 14:30:40 $
+ Version: $Revision: 1.6 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
RLEFrameList Frames;
public:
~RLEFramesInfo();
+ void Print( std::string indent = "", std::ostream &os = std::cout );
};
} // end namespace gdcm