-//-----------------------------------------------------------------------------
-/*
- * In addition to Dicom header exploration, this class is designed
- * for accessing the image/volume content. One can also use it to
- * write Dicom/ACR-NEMA/RAW files.
- */
-class GDCM_EXPORT gdcmFile
-{
-public:
- gdcmFile( gdcmHeader *header );
- gdcmFile( std::string const & filename );
-
- virtual ~gdcmFile();
-
- /// Accessor to \ref Header
- gdcmHeader* GetHeader() { return Header; }
-
- void SetPixelDataSizeFromHeader();
- size_t GetImageDataSize();
- size_t GetImageDataSizeRaw();
-
- void * GetImageData();
- size_t GetImageDataIntoVector(void* destination, size_t maxSize);
- void * GetImageDataRaw();
- size_t GetImageDataIntoVectorRaw(void* destination, size_t maxSize);
-
- // Allocates ExpectedSize bytes of memory at this->Data and copies the
- // pointed data to it. Copying the image might look useless but
- // the caller might destroy it's image (without knowing it: think
- // of a complicated interface where display is done with a library
- // e.g. VTK) before calling the Write
-
- // see also gdcmHeader::SetImageDataSize ?!?
- bool SetImageData (void * data, size_t expectedSize);
-
- /// \todo When the caller is aware we simply point to the data:
- /// int SetImageDataNoCopy (void * Data, size_t ExpectedSize);
-
- // Write pixels of ONE image on hard drive
- // No test is made on processor "endianity"
- // The user must call his reader correctly
- bool WriteRawData (std::string const & fileName);
- bool WriteDcmImplVR(std::string const & fileName);
- 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)
- {
- Header->SetEntryByNumber(content,group,element);
- return true;
- }
-
-protected:
- bool WriteBase(std::string const & fileName, FileType type);