IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
TiffImageFile.h
1 // TiffImageFile.h:
3 // ----------------
4 //
14 
15 #ifndef __IPSDKIMAGEFILE_TIFFIMAGEFILE_H__
16 #define __IPSDKIMAGEFILE_TIFFIMAGEFILE_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::image::file::TiffImageFile::_tiffFileColl' : class 'std::map<_Kty,_Ty>' needs to have dll-interface to be used by clients of class 'ipsdk::image::file::TiffImageFile'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
25 #include <IPSDKImage/Accessor/BaseDiskImageAccessor.h>
26 #include <boost/thread/mutex.hpp>
27 #include <boost/thread/thread.hpp>
28 
29 namespace ipsdk {
30 namespace image {
31 namespace file {
32 
35 
37 {
38  // declare serial class
40 
41 public:
44  TiffImageFile();
45  ~TiffImageFile();
47 
48 // methods
49 public:
53  bool hasBinary8BitsStorage() const;
54 
57  BoolResult createFile(const boost::filesystem::path& filePath,
59  const GeometricCalibrationConstPtr& pGeometricCalibration = GeometricCalibrationConstPtr());
60 
68  BoolResult openFile(const boost::filesystem::path& filePath,
69  const eImageAccessMode& accessMode,
70  const eTiffDirectoryMode& tiffDirectoryMode,
71  const eTiffBufferMode& tiffBufferMode,
72  std::string& userPptiesStr);
73 
81  BoolResult openSharedRemoteFile(const boost::filesystem::path& filePath,
82  const eTiffDirectoryMode& tiffDirectoryMode,
83  const eTiffBufferMode& tiffBufferMode,
84  std::string& userPptiesStr);
85 
86 protected:
94  BoolResult openFileInternal(const boost::filesystem::path& filePath,
95  const eImageAccessMode& accessMode,
96  const eTiffDirectoryMode& tiffDirectoryMode,
97  const eTiffBufferMode& tiffBufferMode,
98  std::string& userPptiesStr,
99  const bool bSharedRemoteAccess);
100 
103  BoolResult createFileInternal(const boost::filesystem::path& filePath,
105  const GeometricCalibrationConstPtr& pGeometricCalibration);
106 
109  BoolResult resizeData(const BaseImageGeometry& geometry);
110 
118  BoolResult readRawData(const ipUInt64 zPlanIdx,
119  const ipUInt64 cPlanIdx,
120  const ipUInt64 tPlanIdx,
121  const ipUInt64 pixelStartOffset,
122  const ipUInt64 nbPixels,
123  void* pData) const;
124 
132  BoolResult writeRawData(const ipUInt64 zPlanIdx,
133  const ipUInt64 cPlanIdx,
134  const ipUInt64 tPlanIdx,
135  const ipUInt64 pixelStartOffset,
136  const ipUInt64 nbPixels,
137  const void* pData);
138 
140  void clearDerived();
141 
142 // attributes
143 protected:
146 
151 
156 
158  mutable boost::mutex _mutex;
159 };
160 
163 
164 } // end of namespace file
165 } // end of namespace image
166 } // end of namespace ipsdk
167 
168 #pragma warning (pop)
169 
170 #endif // __IPSDKIMAGEFILE_TIFFIMAGEFILE_H__
eTiffBufferMode
Flag used to interpret tiff data type.
Definition: TiffImageFileTypes.h:43
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
Base class for image files accessors.
Definition: BaseDiskImageAccessor.h:31
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
#define IPSDKIMAGEFILE_API
Import/Export macro for library IPSDKImageFile.
Definition: IPSDKImageFileExports.h:27
boost::shared_ptr< const ipsdk::GeometricCalibration > GeometricCalibrationConstPtr
shared pointer to const ipsdk::GeometricCalibration
Definition: GeometricCalibrationTypes.h:31
boost::mutex _mutex
mutex used for protection against thread concurrent accesses
Definition: TiffImageFile.h:158
Definition of import/export macro for library.
Base class for image geometry.
Definition: BaseImageGeometry.h:38
eTiffBufferMode _tiffBufferMode
flag used to interpret tiff data type
Definition: TiffImageFile.h:155
eTiffDirectoryMode _tiffDirectoryMode
flag used to interpret tiff directories in term of image geometry
Definition: TiffImageFile.h:150
IPSDKIMAGE_API ImageGeometryPtr geometry(const eImageBufferType &imageBufferType, const ipUInt64 sizeX, const ipUInt64 sizeY, const VolumeGeometry &volumeGeometry, const ColorGeometry &colorGeometry, const TemporalGeometry &temporalGeometry)
create an image geometry
#define IPSDK_DECLARE_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:79
eTiffDirectoryMode
Flag used to interpret tiff directories in term of image geometry.
Definition: TiffImageFileTypes.h:31
Class allowing to access tiff disk images.
Definition: TiffImageFile.h:36
void * _pFileHandler
tiff file handler associated to object
Definition: TiffImageFile.h:145
Predefined types for TiffImageFile management.
eImageAccessMode
Image access mode.
Definition: ImageTypes.h:110