NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkINRImageIO.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkINRImageIO_h
16 #define itkINRImageIO_h
17 
18 #ifdef _MSC_VER
19 #pragma warning ( disable : 4786 )
20 #endif
21 
22 #include <NifTKConfigure.h>
24 
25 #include <itkImageIOBase.h>
26 #include <itkByteSwapper.h>
27 
28 namespace itk
29 {
30 
35 class NIFTKITKIO_WINEXPORT ITK_EXPORT INRImageIO : public ImageIOBase
36 {
37 public:
39  typedef INRImageIO Self;
40  typedef ImageIOBase Superclass;
41  typedef SmartPointer<Self> Pointer;
42 
44  itkNewMacro(Self);
45 
47  itkTypeMacro(INRImageIO, ImageIOBase);
48 
51  virtual bool CanReadFile(const char*) override;
52 
54  virtual void ReadImageInformation() override;
55 
57  virtual void Read(void* buffer) override;
58 
60  virtual bool ReadHeader();
61  unsigned int m_pixelSize;
62 
64  virtual void ReadVolume(void* buffer);
65 
69  virtual unsigned int GetComponentSize() const override;
70 
73  virtual bool CanWriteFile(const char*) override;
74 
77  virtual void WriteImageInformation() override;
78 
81  virtual void Write(const void* buffer) override;
82 
83 protected:
84  INRImageIO();
85  virtual ~INRImageIO();
86 
88  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, int *target );
89  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, char *target );
90  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, float *target );
91  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, int *target, int defaultValue );
92  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, unsigned int *target, unsigned int defaultValue );
93  virtual bool GetParamFromHeader( char* headerPtr, const char *variableToFind, const char *patternToFind, float *target, float defaultValue );
94 
95  void PrintSelf(std::ostream& os, Indent indent) const override;
96 
97  void WriteSlice(std::string& fileName, const void* buffer);
98 
99  void SwapBytesIfNecessary( void* buffer, unsigned long numberOfPixels );
100 
101 private:
102  INRImageIO(const Self&); //purposely not implemented
103  void operator=(const Self&); //purposely not implemented
104 
105  bool m_compression;
106 
107  bool m_LittleEndian;
108 };
109 
110 } // end namespace itk
111 
112 #endif // __itkINRImageIO_h
113 
ImageIOBase Superclass
Definition: itkINRImageIO.h:40
INRImageIO Self
Definition: itkINRImageIO.h:39
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< Self > Pointer
Definition: itkINRImageIO.h:41
GLuint buffer
Definition: glew.h:1664
#define NIFTKITKIO_WINEXPORT
Definition: niftkITKIOWin32ExportHeader.h:28
ITK IO class to load INRIA image format.
Definition: itkINRImageIO.h:35
unsigned int m_pixelSize
Definition: itkINRImageIO.h:61
GLsizei const GLcharARB ** string
Definition: glew.h:5194
GLenum target
Definition: glew.h:5584