-//-----------------------------------------------------------------------------
-/*
- * 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 File
-{
-public:
- enum TWriteMode
- {
- WMODE_NATIVE,
- WMODE_DECOMPRESSED,
- WMODE_RGB
- };
-
- enum TWriteType
- {
- WTYPE_IMPL_VR,
- WTYPE_EXPL_VR,
- WTYPE_ACR
- };
-
-public:
- File( Header* header );
- File( std::string const& filename );
-
- virtual ~File();
-
- /// Accessor to \ref Header
- Header* GetHeader() { return HeaderInternal; }
-
- /// Accessor to \ref ImageDataSize
- size_t GetImageDataSize();
- /// Accessor to \ref ImageDataSizeRaw
- size_t GetImageDataSizeRaw();
-
- /// Accessor to \ref PixelConverter
- PixelConvert* GetPixelConverter() { return PixelConverter; };
-
- uint8_t* GetImageData();
- size_t GetImageDataIntoVector(void* destination, size_t maxSize);
- uint8_t* GetImageDataRaw();
-
- // see also Header::SetImageDataSize ?!?
- bool SetImageData (uint8_t* 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);
- bool Write(std::string const& fileName);
-
- virtual bool SetEntryByNumber(std::string const& content,
- uint16_t group, uint16_t element)
- {
- HeaderInternal->SetEntryByNumber(content,group,element);
- return true;
- }
- uint8_t* GetLutRGBA();
-
- // Write mode
- void SetWriteModeToNative() { SetWriteMode(WMODE_NATIVE); };
- void SetWriteModeToDecompressed() { SetWriteMode(WMODE_DECOMPRESSED); };
- void SetWriteModeToRGB() { SetWriteMode(WMODE_RGB); };
- void SetWriteMode(unsigned int mode) { WriteMode = mode; };
- unsigned int GetWriteMode() { return WriteMode; };
-
- // Write format
- void SetWriteTypeToDcmImplVR() { SetWriteType(WTYPE_EXPL_VR); };
- void SetWriteTypeToDcmExplVR() { SetWriteType(WTYPE_EXPL_VR); };
- void SetWriteTypeToAcr() { SetWriteType(WTYPE_ACR); };
- void SetWriteType(unsigned int format) { WriteType = format; };
- unsigned int GetWriteType() { return WriteType; };