+ size_t GetImageDataSize();
+ size_t GetImageDataRawSize();
+
+ uint8_t* GetImageData();
+ uint8_t* GetImageDataRaw();
+ size_t GetImageDataIntoVector(void* destination, size_t maxSize);
+
+ void SetImageData(uint8_t* data, size_t expectedSize);
+
+ // User datas
+ void SetUserData(uint8_t* data, size_t expectedSize);
+ uint8_t* GetUserData();
+ size_t GetUserDataSize();
+ // RBG datas (from file
+ uint8_t* GetRGBData();
+ size_t GetRGBDataSize();
+ // RAW datas (from file
+ uint8_t* GetRawData();
+ size_t GetRawDataSize();
+
+ // 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);
+
+ bool SetEntryByNumber(std::string const& content,
+ uint16_t group, uint16_t element);
+ bool SetEntryByNumber(uint8_t* content, int lgth,
+ uint16_t group, uint16_t element);
+ bool ReplaceOrCreateByNumber(std::string const& content,
+ uint16_t group, uint16_t element);
+ bool ReplaceOrCreateByNumber(uint8_t* binArea, int lgth,
+ uint16_t group, uint16_t element);
+
+ uint8_t* GetLutRGBA();
+
+ // Write mode
+ void SetWriteModeToRaw() { SetWriteMode(WMODE_RAW); };
+ void SetWriteModeToRGB() { SetWriteMode(WMODE_RGB); };
+ void SetWriteMode(FileMode mode) { WriteMode = mode; };
+ FileMode GetWriteMode() { return WriteMode; };
+
+ // Write format
+ void SetWriteTypeToDcmImplVR() { SetWriteType(ImplicitVR); };
+ void SetWriteTypeToDcmExplVR() { SetWriteType(ExplicitVR); };
+ void SetWriteTypeToAcr() { SetWriteType(ACR); };
+ void SetWriteTypeToAcrLibido() { SetWriteType(ACR_LIBIDO); };
+ void SetWriteType(FileType format) { WriteType = format; };
+ FileType GetWriteType() { return WriteType; };