38 #ifndef OME_FILES_PIXELPROPERTIES_H 39 #define OME_FILES_PIXELPROPERTIES_H 43 #include <ome/common/boolean.h> 48 #include <ome/files/Types.h> 50 #include <ome/xml/model/enums/PixelType.h> 87 return sizeof(
typename P::std_type);
130 static const bool is_signed =
true;
132 static const bool is_integer =
true;
134 static const bool is_complex =
false;
153 static const bool is_signed =
true;
155 static const bool is_integer =
true;
157 static const bool is_complex =
false;
176 static const bool is_signed =
true;
178 static const bool is_integer =
true;
180 static const bool is_complex =
false;
199 static const bool is_signed =
false;
201 static const bool is_integer =
true;
203 static const bool is_complex =
false;
209 public PixelPropertiesBase<struct PixelProperties< ::ome::xml::model::enums::PixelType::UINT16> >
222 static const bool is_signed =
false;
224 static const bool is_integer =
true;
226 static const bool is_complex =
false;
245 static const bool is_signed =
false;
247 static const bool is_integer =
true;
249 static const bool is_complex =
false;
268 static const bool is_signed =
true;
270 static const bool is_integer =
false;
272 static const bool is_complex =
false;
291 static const bool is_signed =
true;
293 static const bool is_integer =
false;
295 static const bool is_complex =
false;
314 static const bool is_signed =
false;
316 static const bool is_integer =
true;
318 static const bool is_complex =
false;
336 public PixelPropertiesBase<PixelProperties< ::ome::xml::model::enums::PixelType::COMPLEX> >
342 typedef std::complex<boost::endian::big_float32_t>
big_type;
344 typedef std::complex<boost::endian::little_float32_t>
little_type;
346 typedef std::complex<boost::endian::native_float32_t>
native_type;
349 static const bool is_signed =
true;
351 static const bool is_integer =
false;
353 static const bool is_complex =
true;
359 public PixelPropertiesBase<PixelProperties< ::ome::xml::model::enums::PixelType::DOUBLECOMPLEX> >
365 typedef std::complex<boost::endian::big_float64_t>
big_type;
367 typedef std::complex<boost::endian::little_float64_t>
little_type;
369 typedef std::complex<boost::endian::native_float64_t>
native_type;
372 static const bool is_signed =
true;
374 static const bool is_integer =
false;
376 static const bool is_complex =
true;
499 bool is_signed =
false,
500 bool is_integer =
true,
501 bool is_complex =
false);
519 bool is_signed =
false,
520 bool is_integer =
true,
521 bool is_complex =
false);
532 boost::endian::reverse(value);
546 value = std::complex<float>(reverse_value(value.real()),
547 reverse_value(value.imag()));
561 value = std::complex<double>(reverse_value(value.real()),
562 reverse_value(value.imag()));
568 #endif // OME_FILES_PIXELPROPERTIES_H
pixel_size_type bytesPerPixel(::ome::xml::model::enums::PixelType pixeltype)
Get the size of a PixelType, in bytes.
Definition: PixelProperties.cpp:65
boost::endian::native_uint16_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:219
::ome::xml::model::enums::PixelType pixelTypeFromBytes(pixel_size_type size, bool is_signed, bool is_integer, bool is_complex)
Determine a likely pixel type from its the storage size in bytes.
Definition: PixelProperties.cpp:190
boost::endian::native_uint32_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:242
::ome::xml::model::enums::PixelType pixelTypeFromBits(pixel_size_type size, bool is_signed, bool is_integer, bool is_complex)
Determine a likely pixel type from its the storage size in bits.
Definition: PixelProperties.cpp:251
Properties common to all pixel types.
Definition: PixelProperties.h:77
PixelProperties< P >::little_type type
Pixel type (little endian).
Definition: PixelProperties.h:399
std::complex< boost::endian::little_float32_t > little_type
Pixel type (little endian).
Definition: PixelProperties.h:344
boost::endian::big_float32_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:261
uint32_t pixel_size_type
Size type for pixel bit depths.
Definition: Types.h:62
pixel_size_type significantBitsPerPixel(::ome::xml::model::enums::PixelType pixeltype)
Get the significant (maximum bits used) size of a PixelType, in bits.
Definition: PixelProperties.cpp:105
boost::endian::little_int32_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:171
ome::common::boolean native_type
Pixel type (native endian).
Definition: PixelProperties.h:311
static pixel_size_type pixel_significant_bit_size()
Get significant (maximum bits used) size of pixel type, in bits.
Definition: PixelProperties.h:327
static pixel_size_type pixel_byte_size()
Get size of pixel type, in bytes.
Definition: PixelProperties.h:85
ome::common::boolean little_type
Pixel type (little endian).
Definition: PixelProperties.h:309
Big endian.
Definition: Types.h:70
boost::endian::little_int8_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:125
boost::endian::big_int8_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:123
static pixel_size_type pixel_significant_bit_size()
Get significant (maximum bits used) size of pixel type, in bits.
Definition: PixelProperties.h:108
boost::endian::native_float32_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:265
Map a given PixelPropertiesType enum to the corresponding language types.
Definition: PixelProperties.h:61
bool isInteger(::ome::xml::model::enums::PixelType pixeltype)
Check whether a PixelType is integer.
Definition: PixelProperties.cpp:145
uint16_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:212
boost::endian::little_int16_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:148
static pixel_size_type pixel_bit_size()
Get size of pixel type, in bits.
Definition: PixelProperties.h:96
int8_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:120
boost::endian::big_uint16_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:215
uint32_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:235
bool isComplex(::ome::xml::model::enums::PixelType pixeltype)
Check whether a PixelType is complex.
Definition: PixelProperties.cpp:171
int16_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:143
boost::endian::little_float64_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:286
Native endian.
Definition: Types.h:72
boost::endian::big_int32_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:169
uint8_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:189
void byteswap(T &value)
Byteswap value to switch endianness.
Definition: PixelProperties.h:530
boost::endian::big_int16_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:146
bool isFloatingPoint(::ome::xml::model::enums::PixelType pixeltype)
Check whether a PixelType is floating point.
Definition: PixelProperties.cpp:160
boost::endian::native_int8_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:127
PixelProperties< P >::big_type type
Pixel type (big endian).
Definition: PixelProperties.h:391
boost::endian::little_uint16_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:217
int32_t std_type
Pixel type (standard language type).
Definition: PixelProperties.h:166
bool isSigned(::ome::xml::model::enums::PixelType pixeltype)
Check whether a PixelType is signed.
Definition: PixelProperties.cpp:125
std::complex< boost::endian::native_float32_t > native_type
Pixel type (native endian).
Definition: PixelProperties.h:346
boost::endian::native_int16_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:150
PixelProperties< P >::native_type type
Pixel type (native endian).
Definition: PixelProperties.h:407
boost::endian::native_int32_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:173
boost::endian::native_uint8_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:196
std::complex< boost::endian::little_float64_t > little_type
Pixel type (little endian).
Definition: PixelProperties.h:367
Map the given PixelPropertiesType and Endian enums to the corresponding endian-specific language type...
Definition: PixelProperties.h:384
Little endian.
Definition: Types.h:71
boost::endian::native_float64_t native_type
Pixel type (native endian).
Definition: PixelProperties.h:288
bool std_type
Pixel type (standard language type).
Definition: PixelProperties.h:304
boost::endian::big_uint32_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:238
boost::endian::big_float64_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:284
float std_type
Pixel type (standard language type).
Definition: PixelProperties.h:258
std::complex< boost::endian::native_float64_t > native_type
Pixel type (native endian).
Definition: PixelProperties.h:369
std::complex< double > std_type
Pixel type (standard language type).
Definition: PixelProperties.h:362
std::complex< boost::endian::big_float32_t > big_type
Pixel type (big endian).
Definition: PixelProperties.h:342
pixel_size_type bitsPerPixel(::ome::xml::model::enums::PixelType pixeltype)
Get the size of a PixelType, in bits.
Definition: PixelProperties.cpp:85
ome::common::boolean big_type
Pixel type (big endian).
Definition: PixelProperties.h:307
double std_type
Pixel type (standard language type).
Definition: PixelProperties.h:281
boost::endian::big_uint8_t big_type
Pixel type (big endian).
Definition: PixelProperties.h:192
boost::endian::little_uint8_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:194
boost::endian::little_float32_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:263
std::complex< float > std_type
Pixel type (standard language type).
Definition: PixelProperties.h:339
boost::endian::little_uint32_t little_type
Pixel type (little endian).
Definition: PixelProperties.h:240
std::complex< boost::endian::big_float64_t > big_type
Pixel type (big endian).
Definition: PixelProperties.h:365