+ 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 SetEntry(std::string const &content,
+ uint16_t group, uint16_t element);
+ bool SetEntry(uint8_t *content, int lgth,
+ uint16_t group, uint16_t element);
+ bool ReplaceOrCreate(std::string const &content,
+ uint16_t group, uint16_t element);
+ bool ReplaceOrCreate(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; };