X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFile.h;h=eb430a8cd442c87c5ea5d93c257314be4d669995;hb=40b909789581894e57a0d8f22d6f1f91f55e7f84;hp=c814acbb6d4aa8b17600b80350b3dfc7660c16bf;hpb=6bbf9cb61993d024630bf9b05b82e4346559c5b2;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index c814acbb..eb430a8c 100644 --- a/src/gdcmFile.h +++ b/src/gdcmFile.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.h,v $ Language: C++ - Date: $Date: 2004/10/08 08:56:48 $ - Version: $Revision: 1.56 $ + Date: $Date: 2004/10/13 14:15:30 $ + Version: $Revision: 1.62 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -21,6 +21,10 @@ #include "gdcmCommon.h" #include "gdcmHeader.h" +#include "gdcmPixelConvert.h" + +namespace gdcm +{ //----------------------------------------------------------------------------- /* @@ -28,39 +32,19 @@ * for accessing the image/volume content. One can also use it to * write Dicom/ACR-NEMA/RAW files. */ -class GDCM_EXPORT gdcmFile +class GDCM_EXPORT File { public: - gdcmFile( gdcmHeader *header ); - gdcmFile( std::string const& filename ); + File( Header* header ); + File( std::string const& filename ); - virtual ~gdcmFile(); + virtual ~File(); /// Accessor to \ref Header - gdcmHeader* GetHeader() { return Header; } + Header* GetHeader() { return HeaderInternal; } int ComputeDecompressedPixelDataSizeFromHeader(); - void ConvertRGBPlanesToRGBPixels( uint8_t* source, uint8_t* destination ); - void ConvertYcBcRPlanesToRGBPixels( uint8_t* source, uint8_t* destination ); - void ConvertReArrangeBits( - uint8_t* pixelZone, - size_t imageDataSize, - int numberBitsStored, - int numberBitsAllocated, - int highBitPosition ) throw ( gdcmFormatError ); - void ConvertReorderEndianity( - uint8_t* pixelZone, - size_t imageDataSize, - int numberBitsStored, - int numberBitsAllocated, - bool signedPixel ); - void ConvertDecompress12BitsTo16Bits( - uint8_t* pixelZone, - int sizeX, - int sizeY, - FILE* filePtr) throw ( gdcmFormatError); - /// Accessor to \ref ImageDataSize size_t GetImageDataSize(){ return ImageDataSize; }; @@ -70,9 +54,9 @@ public: uint8_t* GetImageData(); size_t GetImageDataIntoVector(void* destination, size_t maxSize); uint8_t* GetImageDataRaw(); - size_t GetImageDataIntoVectorRaw(void* destination, size_t maxSize); + void GetImageDataIntoVectorRaw(void* destination, size_t maxSize); - // see also gdcmHeader::SetImageDataSize ?!? + // see also Header::SetImageDataSize ?!? bool SetImageData (uint8_t* data, size_t expectedSize); /// \todo When the caller is aware we simply point to the data: @@ -93,7 +77,7 @@ public: virtual bool SetEntryByNumber(std::string const& content, uint16_t group, uint16_t element) { - Header->SetEntryByNumber(content,group,element); + HeaderInternal->SetEntryByNumber(content,group,element); return true; } @@ -102,45 +86,27 @@ protected: private: void Initialise(); - void SwapZone(void* im, int swap, int lgr, int nb); - bool ReadPixelData(void* destination); - // For JPEG 8 Bits, body in file gdcmJpeg.cxx - bool gdcm_read_JPEG_file (FILE* fp, void* image_buffer); bool gdcm_write_JPEG_file (FILE* fp, void* image_buffer, int image_width, int image_heigh, int quality); // For JPEG 12 Bits, body in file gdcmJpeg12.cxx - bool gdcm_read_JPEG_file12 (FILE* fp, void* image_buffer); bool gdcm_write_JPEG_file12 (FILE* fp, void* image_buffer, int image_width, int image_height, int quality); - // For JPEG 2000, body in file gdcmJpeg2000.cxx - bool gdcm_read_JPEG2000_file (FILE* fp, void* image_buffer); - - // For Run Length Encoding - bool gdcm_read_RLE_file (FILE* fp, void* image_buffer); -// FIXME : *sure* it's NOT static (C++) -// (would be static in C, or embedded in ADA) -// It's NOT a method, but a not user intended fonction. -// How do we write that in C++ ?) - static bool gdcm_read_RLE_fragment( uint8_t** decodedZone, - long fragmentSize, - long uncompressedSegmentSize, FILE* fp); - - void SaveInitialValues(); // will belong to the future gdcmPixelData class - void RestoreInitialValues(); // will belong to the future gdcmPixelData class - void DeleteInitialValues(); // will belong to the future gdcmPixelData class + void SaveInitialValues(); // will belong to the future PixelData class + void RestoreInitialValues(); // will belong to the future PixelData class + void DeleteInitialValues(); // will belong to the future PixelData class // members variables: - /// \brief Header to use to load the file - gdcmHeader *Header; + /// Header to use to load the file + Header *HeaderInternal; - /// \brief Whether the underlying \ref gdcmHeader was loaded by + /// \brief Whether the underlying \ref Header was loaded by /// the constructor or passed to the constructor. When false /// the destructor is in charge of deletion. bool SelfHeader; @@ -148,8 +114,10 @@ private: /// wether already parsed bool Parsed; + /// FIXME + PixelConvert PixelConverter; // -// --------------- Will be moved to a gdcmPixelData class +// --------------- Will be moved to a PixelData class // /// \brief to hold the Pixels (when read) @@ -199,24 +167,25 @@ private: // We keep a pointer on them for a future use. /// \brief Red Palette Color Lookup Table Descriptor 0028 1101 as read - gdcmDocEntry* InitialRedLUTDescr; + DocEntry* InitialRedLUTDescr; /// \brief Green Palette Color Lookup Table Descriptor 0028 1102 as read - gdcmDocEntry* InitialGreenLUTDescr; + DocEntry* InitialGreenLUTDescr; /// \brief Blue Palette Color Lookup Table Descriptor 0028 1103 as read - gdcmDocEntry* InitialBlueLUTDescr; + DocEntry* InitialBlueLUTDescr; /// \brief Red Palette Color Lookup Table Data 0028 1201 as read - gdcmDocEntry* InitialRedLUTData; + DocEntry* InitialRedLUTData; /// \brief Green Palette Color Lookup Table Data 0028 1202 as read - gdcmDocEntry* InitialGreenLUTData; + DocEntry* InitialGreenLUTData; /// \brief Blue Palette Color Lookup Table Data 0028 1203 as read - gdcmDocEntry* InitialBlueLUTData; + DocEntry* InitialBlueLUTData; // -// --------------- end of future gdcmPixelData class +// --------------- end of future PixelData class // }; +} // end namespace gdcm //----------------------------------------------------------------------------- #endif