ITK  4.3.0
Insight Segmentation and Registration Toolkit
itkGE5ImageIO.h
Go to the documentation of this file.
1 /*=========================================================================
2  *
3  * Copyright Insight Software Consortium
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0.txt
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  *=========================================================================*/
32 #ifndef __itkGE5ImageIO_h
33 #define __itkGE5ImageIO_h
34 
35 
36 #include "itkIPLCommonImageIO.h"
37 #include "Ge5xHdr.h"
38 
39 namespace itk
40 {
50 class ITK_EXPORT GE5ImageIO:public IPLCommonImageIO
51 {
52 public:
54  typedef GE5ImageIO Self;
57 
59  itkNewMacro(Self);
60 
62  itkTypeMacro(GE5ImageIO, Superclass);
63 
64  /*-------- This part of the interfaces deals with reading data. ----- */
65 
72  virtual bool CanReadFile(const char *FileNameToRead);
73 
74  /* * Set the spacing and dimension information for the set filename. */
75  // Implemented in superclass
76  // virtual void ReadImageInformation();
77 
79  void ModifyImageInformation();
80 
81  /* * Get the type of the pixel. */
82  // Implemented in superclass
83  // virtual const std::type_info& GetPixelType() const;
84 
85  /* * Reads the data from disk into the memory buffer provided. */
86  // Implemented in superclass
87  // virtual void Read(void* buffer);
88 
89  /* * Compute the size (in bytes) of the components of a pixel. For
90  * example, and RGB pixel of unsigned char would have a
91  * component size of 1 byte. */
92  // Implemented in superclass
93  // virtual unsigned int GetComponentSize() const;
94 
95  /*-------- This part of the interfaces deals with writing data. ----- */
96 
97  /* * Determine if the file can be written with this ImageIO implementation.
98  * \param FileNameToWrite The name of the file to test for writing.
99  * \author Hans J. Johnson
100  * \post Sets classes ImageIOBase::m_FileName variable to be FileNameToWrite
101  * \return Returns true if this ImageIO can write the file specified.
102  */
103  // Implemented in superclass
104  // virtual bool CanWriteFile(const char * FileNameToWrite);
105 
106  /* * Set the spacing and dimension information for the set filename. */
107  // Implemented in superclass
108  // virtual void WriteImageInformation();
109 
110  /* * Writes the data to disk from the memory buffer provided. Make sure
111  * that the IORegions has been set properly. */
112  // Implemented in superclass
113  // virtual void Write(const void* buffer);
114 
115 protected:
116  GE5ImageIO();
117  ~GE5ImageIO();
118 
119  virtual GEImageHeader * ReadHeader(const char *FileNameToRead);
120 
121 private:
122  void SwapPixHdr(Ge5xPixelHeader *hdr);
123 
124  int CheckGE5xImages(char const *const imageFileTemplate, std::string & reason);
125 
126  GE5ImageIO(const Self &); //purposely not implemented
127  void operator=(const Self &); //purposely not implemented
128 };
129 } // end namespace itk
130 
131 #endif // __itkAnalyzeImageIO_h
132