25 #ifndef itkHDF5ImageIO_h
26 #define itkHDF5ImageIO_h
27 #include "ITKIOHDF5Export.h"
110 CanReadFile(
const char * FileNameToRead)
override;
114 ReadImageInformation()
override;
118 Read(
void * buffer)
override;
129 CanWriteFile(
const char * name)
override;
133 WriteImageInformation()
override;
138 Write(
const void * buffer)
override;
145 GetHeaderSize()
const override;
148 PrintSelf(std::ostream & os,
Indent indent)
const override;
152 WriteString(
const std::string & path,
const std::string & value);
154 WriteString(
const std::string & path,
const char * s);
156 ReadString(
const std::string & path);
159 WriteScalar(
const std::string & path,
const bool & value);
161 WriteScalar(
const std::string & path,
const long & value);
163 WriteScalar(
const std::string & path,
const unsigned long & value);
165 WriteScalar(
const std::string & path,
const long long & value);
167 WriteScalar(
const std::string & path,
const unsigned long long & value);
169 template <
typename TScalar>
171 WriteScalar(
const std::string & path,
const TScalar & value);
173 template <
typename TScalar>
175 ReadScalar(
const std::string & DataSetName);
177 template <
typename TScalar>
179 WriteVector(
const std::string & path,
const std::vector<TScalar> & vec);
181 template <
typename TScalar>
183 ReadVector(
const std::string & DataSetName);
186 WriteDirections(
const std::string & path,
const std::vector<std::vector<double>> & dir);
188 std::vector<std::vector<double>>
189 ReadDirections(
const std::string & path);
191 template <
typename TType>
194 template <
typename TType>
197 template <
typename TType>
200 const std::string & HDFPath,
201 const std::string & name,
202 unsigned long numElements);
204 SetupStreaming(H5::DataSpace * imageSpace, H5::DataSpace * slabSpace);
211 H5::H5File * m_H5File{
nullptr };
212 H5::DataSet * m_VoxelDataSet{
nullptr };
213 bool m_ImageInformationWritten{
false };
217 #endif // itkHDF5ImageIO_h