X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmFile.h;h=361bc3d81285154b3360d1b89e92decc94cf8e1a;hb=e28b183ba68aa3cc84a44a779a31f9d906a1ad2f;hp=7d153eff29decdd8662feee0b4c4eb73d9aeb574;hpb=da6bc02a3bb5627685bd70f5503305a7f9b3d7cd;p=gdcm.git diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 7d153eff..361bc3d8 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/10 16:44:00 $ - Version: $Revision: 1.59 $ + Date: $Date: 2004/10/18 12:49:22 $ + Version: $Revision: 1.63 $ 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,22 +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 ); - /// Accessor to \ref ImageDataSize size_t GetImageDataSize(){ return ImageDataSize; }; @@ -53,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: @@ -76,9 +77,10 @@ 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; } + uint8_t* GetLutRGBA(); protected: bool WriteBase(std::string const& fileName, FileType type); @@ -86,8 +88,6 @@ protected: private: void Initialise(); - bool ReadPixelData(void* destination); - // For JPEG 8 Bits, body in file gdcmJpeg.cxx bool gdcm_write_JPEG_file (FILE* fp, void* image_buffer, int image_width, int image_heigh, @@ -98,16 +98,17 @@ private: int image_width, int image_height, int quality); - 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 +private: // 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; @@ -115,8 +116,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) @@ -166,24 +169,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