-private:
- void SwapZone(void* im, int swap, int lgr, int nb);
- void SetInitialValues();
- bool ReadPixelData(void * destination);
-
- // For JPEG 8 Bits, body in file gdcmJpeg.cxx
- bool gdcm_read_JPEG_file (FILE *fp, void * image_buffer);
- bool gdcm_write_JPEG_file (FILE *fp, void * image_buffer,
- int image_width, int image_heigh,
- int quality);
-
- // For JPEG 12 Bits, body in file gdcmJpeg12.cxx
- bool gdcm_read_JPEG_file12 (FILE *fp, void* image_buffer);
- bool gdcm_write_JPEG_file12 (FILE *fp, void* image_buffer,
- int image_width, int image_height,
- int quality);
-
- // For JPEG 2000, body in file gdcmJpeg2000.cxx
- bool gdcm_read_JPEG2000_file (FILE *fp, void* image_buffer);
-
- // For Run Length Encoding
- bool gdcm_read_RLE_file (FILE *fp, void* image_buffer);
-// FIXME : *sure* it's NOT static (C++)
-// (would be static in C, or embedded in ADA)
-// It's NOT a method, but a not user intended fonction.
-// How do we write that in C++ ?)
- static int gdcm_read_RLE_fragment(char **areaToRead, long lengthToDecode,
- long uncompressedSegmentSize, FILE *fp);
-// members variables:
-
- /// \brief Header to use to load the file
- gdcmHeader *Header;
-
- /// \brief Whether the underlying \ref gdcmHeader was loaded by
- /// the constructor or passed to the constructor. When false
- /// the destructor is in charge of deletion.
- bool SelfHeader;
-
- /// \brief to hold the Pixels (when read)
- void* Pixel_Data; // (was PixelData; should be removed)
-
- /// \brief Area length to receive the pixels
- size_t ImageDataSizeRaw;
-
- /// \brief Area length to receive the RGB pixels
- /// from Grey Plane + Palette Color
- size_t ImageDataSize;
-
- /// \brief ==1 if GetImageDataRaw was used
- /// ==0 if GetImageData was used
- /// ==-1 if ImageData never read
- int PixelRead;
+public:
+ static File *New() {return new File();}
+
+ // Loading
+ // GDCM_LEGACY(bool Load( std::string const &filename ))
+ bool Load();
+ // Standard values and informations contained in the header
+ bool IsReadable();
+
+ void SetFourthDimensionLocation(uint16_t group, uint16_t elem) {
+ FourthDimensionLocation = TagKey(group, elem); }
+
+ // Some heuristic based accessors, end user intended
+ int GetImageNumber();
+ ModalityType GetModality();
+
+ int GetXSize();
+ int GetYSize();
+ int GetZSize();
+ int GetTSize(); // unnormalized in DICOM V3
+
+ bool GetSpacing(float &xspacing, float &yspacing, float &zspacing);
+ float GetXSpacing();
+ float GetYSpacing();
+ float GetZSpacing();
+
+ float GetXOrigin();
+ float GetYOrigin();
+ float GetZOrigin();
+
+ float GetXCosineOnX();
+ float GetXCosineOnY();
+ float GetXCosineOnZ();
+ float GetYCosineOnX();
+ float GetYCosineOnY();
+ float GetYCosineOnZ();
+
+ bool GetImageOrientationPatient( float iop[6] );
+ bool GetImagePositionPatient( float ipp[3] );