libCZI
Reading and Writing CZI documents made easy
libCZI Namespace Reference

External interfaces, classes, functions and structs are found in the namespace "libCZI". More...

Classes

struct  BuildInformation
 
struct  CZIWriterOptions
 
class  IStream
 
class  IOutputStream
 
class  IInputOutputStream
 Interface for a read-write-stream. More...
 
struct  SubBlockInfo
 Information about a sub-block. More...
 
struct  DirectorySubBlockInfo
 
class  ISubBlock
 
struct  AttachmentInfo
 Information about an attachment. More...
 
class  IAttachment
 Representation of an attachment. An attachment is a binary blob, its inner structure is opaque. More...
 
class  IMetadataSegment
 Interface representing the metadata-segment. More...
 
struct  BoundingBoxes
 This structure gathers the bounding-boxes determined from all sub-blocks and only be those on pyramid-layer 0. More...
 
struct  SubBlockStatistics
 Statistics about all sub-blocks found in a CZI-document. More...
 
struct  PyramidStatistics
 Statistics about the pyramid-layers. More...
 
class  ISubBlockRepository
 Interface for sub-block repository. This interface is used to access the sub-blocks in a CZI-file. More...
 
class  ISubBlockRepositoryEx
 Additional functionality for the subblock-repository, providing some specialized and not commonly used functionality. More...
 
class  IAttachmentRepository
 Interface for the attachment repository. This interface is used to access the attachments in a CZI-file. More...
 
struct  FileHeaderInfo
 Global information about the CZI-file (from the CZI-fileheader-segment). More...
 
class  ICZIReader
 
class  ISubBlockCacheStatistics
 This interface defines how status information about the cache-state can be queried. More...
 
class  ISubBlockCacheControl
 This interface defines the global operations on the cache. It is used to control the memory usage of the cache. More...
 
class  ISubBlockCacheOperation
 This interface defines the operations of adding and querying an element to/from the cache. More...
 
class  ISubBlockCache
 
class  IAccessor
 The base interface (all accessor-interface must derive from this). More...
 
class  ISingleChannelTileAccessor
 
class  ISingleChannelPyramidLayerTileAccessor
 
class  ISingleChannelScalingTileAccessor
 
class  Compositors
 Composition operations are found in this class: multi-tile compositor and multi-channel compositor. More...
 
class  IDimCoordinate
 Interface used to represent a coordinate (in the space of the dimensions identified by DimensionIndex). More...
 
class  IDimBounds
 Interface used to represent an interval (for several dimensions). More...
 
class  IIndexSet
 
struct  DimensionAndValue
 A structure combining a dimension and a value. More...
 
struct  DimensionAndStartSize
 A structure combining a dimension and an interval (defined by a start value and the size). More...
 
class  CDimBase
 Base class containing some commonly used methods. More...
 
class  CDimCoordinate
 Implementation of a class representing a coordinate (and implementing the IDimCoordinate-interface). More...
 
class  CDimBounds
 Implementation of a class representing an interval (and implementing the libCZI::IDimBounds-interface). More...
 
class  LibCZIException
 Base class for all libCZI-specific exceptions. More...
 
class  LibCZIAccessorException
 Exception for signaling errors specific for accessors. More...
 
class  LibCZIStringParseException
 Exception for signaling that a string did not parse correctly. More...
 
class  LibCZIIOException
 
struct  LibCZICZIParseException
 Exception for signaling errors parsing the CZI-stream. More...
 
struct  LibCZISegmentNotPresent
 
struct  LibCZIInvalidPlaneCoordinateException
 Exception for signaling an incorrect plane-coordinate object. More...
 
class  LibCZIWriteException
 Exception for signaling errors when using the CziWriter-object. More...
 
class  LibCZIReaderWriteException
 Exception for signaling errors when using the CziReaderWriter-object. More...
 
class  LibCZIMetadataBuilderException
 Exception for signaling errors when using the Czi-metadata-builder-object. More...
 
class  LibCZIMetadataException
 Exception for signaling errors when accessing the XML-metadata (. More...
 
class  LibCZIXmlParseException
 Exception for signaling errors when parsing the XML-metadata. More...
 
struct  XmlDateTime
 This structure specifies the information in an XSD-DateTime field (cf. https://www.w3schools.com/XML/schema_dtypes_date.asp). More...
 
struct  GeneralDocumentInfo
 General document information - corresponding to Information/Document. More...
 
struct  ScalingInfo
 Scaling information - gives the size of a pixel. More...
 
struct  ScalingInfoEx
 
class  IDimensionInfo
 Base class for information about the dimension. More...
 
class  IDimensionZInfo
 This structure defines the information for the "Z-dimension". It resembles the ZEN-metadata-structure "Dimensions/Z". More...
 
class  IDimensionTInfo
 This structure defines the information for the "T-dimension". It resembles the ZEN-metadata-structure "Dimensions/T". More...
 
class  IDisplaySettings
 The display settings. More...
 
class  IChannelDisplaySetting
 The display-settings for a channel. More...
 
struct  ChannelDisplaySettingsPOD
 
struct  DisplaySettingsPOD
 
class  ICziMultiDimensionDocumentInfo
 The top-level interface for the CZI-metadata object. More...
 
class  IXmlNodeRead
 This interface provides read-only access to an XML-node. More...
 
class  ICziMetadata
 Representation of the CZI-metadata. More...
 
class  IXmlNodeWrite
 This interface provides write access to an XML-node. More...
 
class  IXmlNodeRw
 This interface combines read- and write-access for an XML-node. More...
 
class  ICziMetadataBuilder
 A utility class intended for constructing CZI-metadata. More...
 
struct  CustomValueVariant
 Variant for CustomValue. More...
 
class  MetadataUtils
 Helper functions useful for constructing CZI-metadata. More...
 
struct  RangeOrSingleValue
 This struct represents either a single value or a range. More...
 
struct  SpectrumCharacteristics
 Structure used to describe the spectral characteristic of light. More...
 
class  IAttributeId
 This interface is used for all elements that contain an 'id' (as XML-attribute). More...
 
class  IAttributeName
 This interface is used for all elements that contain a 'name' (as XML-attribute). More...
 
class  IDimensionChannelInfo
 Information about the dimension "channel". More...
 
class  IDimensionsChannelsInfo
 Information about the set of channels. More...
 
class  IDimensionChannelDetectorSettings
 The detector settings. More...
 
class  IDimensionChannelLightSourcesSetting
 The light sources settings. More...
 
class  IDimensionChannelLightSourcesSettings
 The light sources settings keyed by channel index. More...
 
class  IDimensionChannelLightPath
 The light path information. More...
 
class  IDimensionChannelLaserScanInfo
 Information about the laser scan. More...
 
class  IDimensionChannelSPIMIlluminationSettings
 The SPIM illumination settings. More...
 
class  IInstrumentObjectiveSettings
 The objective settings. More...
 
class  ISPIMIlluminationResonanceScannerSettings
 The SPIM illumination resonance scanner settings. More...
 
class  ISPIMIlluminationGalvoScannerSettings
 The settings of the SPIM galvo scanner. More...
 
class  IDimensionChannelSPIMDetectionSettings
 The SPIM detection settings. More...
 
class  IDimensionChannelSIMSettings
 The SIM (Structured Illumination Microscopy) settings. More...
 
class  IDimensionChannelPolarizingSettings
 The polarizer settings. More...
 
class  IFastAiryScanSettings
 The fast airy scan settings. More...
 
class  IDimensionChannelAiryscanSettings
 The airy scan settings. More...
 
class  IDimensionChannelRatio
 Information about the channel ratio. More...
 
struct  IntRect
 A rectangle (with integer coordinates). More...
 
struct  DblRect
 A rectangle (with double coordinates). More...
 
struct  IntSize
 A structure representing a size (width and height) in integers. More...
 
struct  Rgb8Color
 A structure representing an R-G-B-color triple (as bytes). More...
 
struct  RgbFloatColor
 A structure representing an R-G-B-color triple (as floats). More...
 
struct  BitmapLockInfo
 Information about a locked bitmap - allowing direct access to the image data in memory. More...
 
class  IBitmapData
 
class  ScopedBitmapLocker
 
class  IDecoder
 The interface used for operating image decoder. That is the simplest possible interface at this point... More...
 
class  ISite
 
struct  GUID
 Represents a globally unique identifier (GUID) consisting of four unsigned 32-bit integers. More...
 
class  Utils
 A bunch of utility functions. More...
 
class  ICziWriterInfo
 The options for the CZI-writer. More...
 
class  CCziWriterInfo
 An implementation of the ICziWriterInfo-interface. More...
 
struct  AddSubBlockInfoBase
 Information about a subblock. More...
 
struct  AddSubBlockInfo
 
struct  AddSubBlockInfoMemPtr
 
struct  AddSubBlockInfoStridedBitmap
 
struct  AddSubBlockInfoLinewiseBitmap
 
struct  AddAttachmentInfo
 This struct describes an attachment to be added to a CZI-file. More...
 
struct  WriteMetadataInfo
 This struct defines the data to be added as metadata-segment. Unused entries (e. g. no attachment) must have a size of 0. More...
 
struct  PrepareMetadataInfo
 Information which is used to construct the metadata-preparation. More...
 
class  ICziWriter
 
class  ICziReaderWriterInfo
 Options for the CziReaderWriter. More...
 
class  ICziReaderWriter
 
class  CCziReaderWriterInfo
 An implementation of the ICziReaderWriterInfo-interface. More...
 
struct  CompressParameter
 Simple variant type used for the compression-parameters-property-bag. More...
 
class  ICompressParameters
 
class  IMemoryBlock
 Interface representing a "block of memory". It is used to hold the result of a compression-operation. More...
 
class  ZstdCompress
 
class  JxrLibCompress
 
class  CompressParametersOnMap
 
class  StreamsFactory
 

Typedefs

typedef ScopedBitmapLocker< IBitmapData * > ScopedBitmapLockerP
 Defines an alias representing the scoped bitmap locker for use with libCZI::IBitmapData.
 
typedef ScopedBitmapLocker< std::shared_ptr< IBitmapData > > ScopedBitmapLockerSP
 Defines an alias representing the scoped bitmap locker for use with a shared_ptr of type libCZI::IBitmapData.
 

Enumerations

enum class  SiteObjectType { Default , WithJxrDecoder , WithWICDecoder }
 
enum class  AccessorType { SingleChannelTileAccessor , SingleChannelPyramidLayerTileAccessor , SingleChannelScalingTileAccessor }
 Values that represent the accessor types. More...
 
enum class  DimensionIndex : std::uint8_t {
  invalid = 0 , MinDim = 1 , Z = 1 , C = 2 ,
  T = 3 , R = 4 , S = 5 , I = 6 ,
  H = 7 , V = 8 , B = 9 , MaxDim = 9
}
 Values that represent dimension indexes. More...
 
enum class  DimensionChannelChannelType : std::uint8_t {
  Heightmap , PalHR , PalWidefield , SimHR ,
  SimWidefield , SimDWF , AiryScanSum , AiryScanRawSr ,
  AiryScanRaw , AiryScanSr , AiryScanVp , AiryScanMb ,
  AiryScanRingSheppardSum , OnlineUnmixing , Unspecified
}
 
enum class  DimensionChannelAcquisitionMode : std::uint8_t {
  WideField , LaserScanningConfocalMicroscopy , SpinningDiskConfocal , SlitScanConfocal ,
  MultiPhotonMicroscopy , StructuredIllumination , SingleMoleculeImaging , TotalInternalReflection ,
  FluorescenceLifetime , SpectralImaging , FluorescenceCorrelationSpectroscopy , NearFieldScanningOpticalMicroscopy ,
  SecondHarmonicGenerationImaging , PALM , STORM , STED ,
  TIRF , FSM , LCM , SPIM ,
  SEM , FIB , FIB_SEM , ApertureCorrelation ,
  Other
}
 
enum class  DimensionChannelIlluminationType : std::uint8_t {
  Transmitted , Epifluorescence , Oblique , NonLinear ,
  Other
}
 Values that represent the method of illumination used to acquire the channel. More...
 
enum class  DimensionChannelContrastMethod : std::uint8_t {
  Brightfield , Phase , DIC , HoffmanModulation ,
  ObliqueIllumination , PolarizedLight , Darkfield , Fluorescence ,
  MultiPhotonFluorescence , Other
}
 Values that represent a contrast method, a technique used to achieve contrast, for the images in a channel. More...
 
enum class  DimensionChannelPinholeGeometry : std::uint8_t { Circular , Rectangular , Other }
 Values that represent the pinhole geometry. More...
 
enum class  ChannelDetectorSettingsBinning : std::uint8_t {
  _1x1 , _2x2 , _4x4 , _8x8 ,
  Other
}
 Values that represent the binning mode of a detector. More...
 
enum class  ChannelDetectorSettingsShutter : std::uint8_t { Rolling , Global , Other }
 Values that represent the behavior of the shutter. More...
 
enum class  ChannelDetectorCameraProcessingMode : std::uint8_t { None , Widefield , Sectioned , RawDataMode }
 Values that represent the detector processing mode. More...
 
enum class  DimensionChannelLaserScanScanningMode : std::uint8_t {
  Frame , FastFrame , LineSequential , Line ,
  Spot , Other
}
 Values that represent the laser scanning mode. More...
 
enum class  DimensionChannelLaserScanScanDirection : std::uint8_t { Bidirectional , Unidirectional }
 Values that represent the laser scan direction. More...
 
enum class  DimensionChannelLaserScanAveragingMethod : std::uint8_t { Mean , Sum , Other }
 Values that represent the laser scan averaging methods. More...
 
enum class  DimensionChannelLaserScanAveragingMode : std::uint8_t { Frame , Line , Other }
 Values that represent the laser scan averaging mode. More...
 
enum class  DimensionChannelLaserScanLaserAttenuatorState : std::uint8_t { On , Off }
 Values that represent the channel laser scan laser attenuator state. More...
 
enum class  DimensionChannelSPIMIlluminationSettingsBeamType : std::uint8_t { Gauss , Bessel , Other }
 Values that represent the beam type for SPIM illumination. More...
 
enum class  PixelType : std::uint8_t {
  Invalid = 0xff , Gray8 = 0 , Gray16 = 1 , Gray32Float = 2 ,
  Bgr24 = 3 , Bgr48 = 4 , Bgr96Float = 8 , Bgra32 = 9 ,
  Gray64ComplexFloat = 10 , Bgr192ComplexFloat = 11 , Gray32 = 12 , Gray64Float = 13
}
 An enum representing a pixel-type. More...
 
enum class  CompressionMode : std::uint8_t {
  Invalid = 0xff , UnCompressed = 0 , Jpg = 1 , JpgXr = 4 ,
  Zstd0 = 5 , Zstd1 = 6
}
 An enum specifying the compression method. More...
 
enum class  SubBlockPyramidType : std::uint8_t { Invalid = 0xff , None = 0 , SingleSubBlock = 1 , MultiSubBlock = 2 }
 
enum class  ImageDecoderType { JPXR_JxrLib , ZStd0 , ZStd1 }
 
enum class  CompressionParameterKey { ZSTD_RAWCOMPRESSIONLEVEL = 1 , ZSTD_PREPROCESS_DOLOHIBYTEPACKING = 2 , JXRLIB_QUALITY = 3 }
 

Functions

LIBCZI_API ISiteGetDefaultSiteObject (libCZI::SiteObjectType type)
 
LIBCZI_API void SetSiteObject (libCZI::ISite *pSite)
 
LIBCZI_API void GetLibCZIVersion (int *pMajor, int *pMinor=nullptr, int *pPatch=nullptr, int *pTweak=nullptr)
 
LIBCZI_API void GetLibCZIBuildInformation (BuildInformation &info)
 
LIBCZI_API std::shared_ptr< ICZIReaderCreateCZIReader ()
 
LIBCZI_API std::shared_ptr< ICziWriterCreateCZIWriter (const CZIWriterOptions *options=nullptr)
 
LIBCZI_API std::shared_ptr< ICziReaderWriterCreateCZIReaderWriter ()
 
LIBCZI_API std::shared_ptr< IBitmapDataCreateBitmapFromSubBlock (ISubBlock *subBlk)
 
LIBCZI_API std::shared_ptr< ICziMetadataCreateMetaFromMetadataSegment (IMetadataSegment *metadataSegment)
 
LIBCZI_API std::shared_ptr< IAccessorCreateAccesor (std::shared_ptr< ISubBlockRepository > repository, AccessorType accessorType)
 
LIBCZI_API std::shared_ptr< IStreamCreateStreamFromFile (const wchar_t *szFilename)
 
LIBCZI_API std::shared_ptr< IStreamCreateStreamFromMemory (std::shared_ptr< const void > ptr, size_t dataSize)
 
LIBCZI_API std::shared_ptr< IStreamCreateStreamFromMemory (IAttachment *attachment)
 
LIBCZI_API std::shared_ptr< IOutputStreamCreateOutputStreamForFile (const wchar_t *szFilename, bool overwriteExisting)
 
LIBCZI_API std::shared_ptr< IInputOutputStreamCreateInputOutputStreamForFile (const wchar_t *szFilename)
 
LIBCZI_API std::shared_ptr< ICziMetadataBuilderCreateMetadataBuilder ()
 
LIBCZI_API std::shared_ptr< ISubBlockCacheCreateSubBlockCache ()
 
LIBCZI_API std::shared_ptr< ICziMetadataBuilderCreateMetadataBuilderFromXml (const std::string &xml)
 
std::ostream & operator<< (std::ostream &os, const IntRect &rect)
 
std::ostream & operator<< (std::ostream &os, const IntSize &size)
 

Variables

const int LOGLEVEL_CATASTROPHICERROR = 0
 Identifies a catastrophic error (i. e. the program cannot continue).
 
const int LOGLEVEL_ERROR = 1
 Identifies a non-recoverable error.
 
const int LOGLEVEL_SEVEREWARNING = 2
 Identifies that a severe problem has occured. Proper operation of the module is not ensured.
 
const int LOGLEVEL_WARNING = 3
 Identifies that a problem has been identified. It is likely that proper operation can be kept up.
 
const int LOGLEVEL_INFORMATION = 4
 Identifies an informational output. It has no impact on the proper operation.
 
const int LOGLEVEL_CHATTYINFORMATION = 5
 Identifies an informational output which has no impact on proper operation. Use this for output which may occur with high frequency.
 

Detailed Description

External interfaces, classes, functions and structs are found in the namespace "libCZI".

Enumeration Type Documentation

◆ AccessorType

enum libCZI::AccessorType
strong

Values that represent the accessor types.

Enumerator
SingleChannelTileAccessor 

The single-channel-tile accessor (associated interface: ISingleChannelTileAccessor).

SingleChannelPyramidLayerTileAccessor 

The single-channel-pyramidlayer-tile accessor (associated interface: ISingleChannelPyramidLayerTileAccessor).

SingleChannelScalingTileAccessor 

The scaling-single-channel-tile accessor (associated interface: ISingleChannelScalingTileAccessor).

◆ ChannelDetectorCameraProcessingMode

enum libCZI::ChannelDetectorCameraProcessingMode : std::uint8_t
strong

Values that represent the detector processing mode.

Enumerator
None 

No camera processing was used.

Widefield 

Widefield processing mode was used.

Sectioned 

Sectioned processing mode was used.

RawDataMode 

Raw data mode was used.

◆ ChannelDetectorSettingsBinning

enum libCZI::ChannelDetectorSettingsBinning : std::uint8_t
strong

Values that represent the binning mode of a detector.

Enumerator
_1x1 

1x1 pixels are used (i.e. no binning).

_2x2 

2x2 pixels are used.

_4x4 

4x4 pixels are used.

_8x8 

8x8 pixels are used.

Other 

Some other binning was used.

◆ ChannelDetectorSettingsShutter

enum libCZI::ChannelDetectorSettingsShutter : std::uint8_t
strong

Values that represent the behavior of the shutter.

Enumerator
Rolling 

A rolling shutter mode was used.

Global 

A global shutter mode was used.

Other 

Some other shutter mode was used.

◆ CompressionMode

enum libCZI::CompressionMode : std::uint8_t
strong

An enum specifying the compression method.

Enumerator
Invalid 

Invalid compression type.

UnCompressed 

The data is uncompressed.

Jpg 

The data is JPG-compressed.

JpgXr 

The data is JPG-XR-compressed.

Zstd0 

The data is compressed with zstd.

Zstd1 

The data contains a header, followed by a zstd-compressed block.

◆ CompressionParameterKey

Values that represent well-known keys for the compression-parameters property bag. Note that the property-bag API is modeled with an int as key, which is by intention in order to allow for private keys.

Enumerator
ZSTD_RAWCOMPRESSIONLEVEL 

This gives the "raw" zstd compression level aka "ExplicitLevel" (type: int32). If value is out-of-range, it will be clipped. This parameter is used with "zstd0" and "zstd1" compression schemes.

ZSTD_PREPROCESS_DOLOHIBYTEPACKING 

Whether to do the "lo-hi-byte-packing" preprocessing (type: boolean). This parameter is used with the "zstd1" compression scheme only.

JXRLIB_QUALITY 

The quality parameter for the jxrlib encoder (type: uint32). The range is from 0 to 1000, where 1000 gives the best quality (i.e. loss-less compression). This parameter is used with the "jxrlib" compression scheme only. If value is out-of-range, it will be clipped.

◆ DimensionChannelAcquisitionMode

enum libCZI::DimensionChannelAcquisitionMode : std::uint8_t
strong

Values that represent the acquisition mode of a channel. The acquisition mode describes the type of microscopy performed for each channel.

Enumerator
WideField 

The channel contains images from wide field microscopy.

LaserScanningConfocalMicroscopy 

The channel contains images from laser-scanning-confocal microscopy.

SpinningDiskConfocal 

The channel contains images from a confocal spinning-disk system.

SlitScanConfocal 

Unknown denotation.

MultiPhotonMicroscopy 

The channel contains images an image from a multi-photon-microscopy system.

StructuredIllumination 

The channel contains images from structured-illumination microscopy system.

SingleMoleculeImaging 

meaning unknown

TotalInternalReflection 

The channel contains images from a TIRF microscopy system.

FluorescenceLifetime 

Unknown denotation.

SpectralImaging 

Unknown denotation.

FluorescenceCorrelationSpectroscopy 

Unknown denotation.

NearFieldScanningOpticalMicroscopy 

Unknown denotation.

SecondHarmonicGenerationImaging 

The channel contains images from Second harmonic imaging microscopy (SHIM).

PALM 

The channel contains images from photo-activation localization microscopy.

STORM 

The channel contains images from stochastic optical reconstruction microscopy.

STED 

The channel contains images from stimulated emission depletion microscopy.

TIRF 

The channel contains images from total internal reflection fluorescence (TIRFM).

FSM 

The channel contains images from Fluorescence speckle microscopy.

LCM 

The channel contains images from laser capture micro dissection.

SPIM 

The channel contains images from selective-plane-illumination microscopy.

SEM 

The channel contains images from scanning electron microscopy.

FIB 

The channel contains images from focus ion beam microscopy.

FIB_SEM 

The channel contains images from focus ion beam and scanning electron microscopy.

ApertureCorrelation 

The channel contains image from aperture correlation (a specific application of Structured Illumination).

Other 

Some other type of image formation.

◆ DimensionChannelChannelType

enum libCZI::DimensionChannelChannelType : std::uint8_t
strong

Values that represent the type of a channel. This field (in a sense) has the highest precedence when determining/assigning the microscopy method how a channel was acquired. Usually, the AcquisitionMode-field is used to give an indication which microscopy method was used. But if this field "ChannelType" is present, it has higher precedence - i.e. it should be checked first.

Enumerator
Heightmap 

This channel represents a heightmap. Note that additional restrictions apply when declaring a channel as heightmap.

PalHR 

Unknown denotation.

PalWidefield 

Unknown denotation.

SimHR 

Unknown denotation.

SimWidefield 

Unknown denotation.

SimDWF 

Unknown denotation.

AiryScanSum 

This channel contains a processed (combined) super-resolution from an Airy-scan-acquisition in draft quality.

AiryScanRawSr 

This channel contains the images of all sensors in the Airy-Scan-sensor-array.

AiryScanRaw 

This channel contains the images of all sensors in the Airy-Scan-sensor-array.

AiryScanSr 

This channel contains the (processed) super-resolution image.

AiryScanVp 

This channel contains the (processed) "virtual pinhole" image.

AiryScanMb 

This channel contains the (processed) "multi-beam" image.

AiryScanRingSheppardSum 

This channel contains the Sheppard-sum created from 4 fiber-rings.

OnlineUnmixing 

This channel contains the result of an online unmixing acquisition with a laser-scanning microscope.

Unspecified 

Unspecified type.

◆ DimensionChannelContrastMethod

enum libCZI::DimensionChannelContrastMethod : std::uint8_t
strong

Values that represent a contrast method, a technique used to achieve contrast, for the images in a channel.

Enumerator
Brightfield 

Bright filed micrsocopy was used.

Phase 

Unknown denotation.

DIC 

Differential Interference Contrast was used.

HoffmanModulation 

Hoffman Modulation Contrast (HMC) was used.

ObliqueIllumination 

Oblique illumination was used.

PolarizedLight 

Polarization microscopy was used.

Darkfield 

Dark Field Imaging was used.

Fluorescence 

Fluorescence microscopy was used.

MultiPhotonFluorescence 

Multi-photon excitation was employed.

Other 

Some other contrast method was used.

◆ DimensionChannelIlluminationType

enum libCZI::DimensionChannelIlluminationType : std::uint8_t
strong

Values that represent the method of illumination used to acquire the channel.

Enumerator
Transmitted 

Transmitted light was used.

Epifluorescence 

Objective was used to bring light to the specimen.

Oblique 

Oblique light was used.

NonLinear 

Unknown denotation.

Other 

Some other type of illumination was used.

◆ DimensionChannelLaserScanAveragingMethod

Values that represent the laser scan averaging methods.

Enumerator
Mean 

An enum constant representing the mean laser scan averaging method.

Sum 

An enum constant representing the sum laser scan averaging method.

Other 

An enum constant representing that some other averaging method was used.

◆ DimensionChannelLaserScanAveragingMode

Values that represent the laser scan averaging mode.

Enumerator
Frame 

An enum constant representing the frame laser scan averaging mode.

Line 

An enum constant representing the line laser scan averaging mode.

Other 

An enum constant representing that some other line laser scan averaging mode was used.

◆ DimensionChannelLaserScanLaserAttenuatorState

Values that represent the channel laser scan laser attenuator state.

Enumerator
On 

An enum constant representing the on option.

Off 

An enum constant representing the off option.

◆ DimensionChannelLaserScanScanDirection

Values that represent the laser scan direction.

Enumerator
Bidirectional 

An enum constant representing the bidirectional scan direction.

Unidirectional 

An enum constant representing the unidirectional scan direction.

◆ DimensionChannelLaserScanScanningMode

Values that represent the laser scanning mode.

Enumerator
Frame 

An enum constant representing the frame scanning mode.

FastFrame 

An enum constant representing the fast frame scanning mode.

LineSequential 

An enum constant representing the line sequential scanning mode.

Line 

An enum constant representing the line scanning mode.

Spot 

An enum constant representing the spot scanning mode.

Other 

An enum constant representing some other scanning mode was used.

◆ DimensionChannelPinholeGeometry

enum libCZI::DimensionChannelPinholeGeometry : std::uint8_t
strong

Values that represent the pinhole geometry.

Enumerator
Circular 

An enum constant representing a circular pinhole.

Rectangular 

An enum constant representing a rectangular pinhole.

Other 

An enum constant representing "some other geometry".

◆ DimensionChannelSPIMIlluminationSettingsBeamType

Values that represent the beam type for SPIM illumination.

Enumerator
Gauss 

An enum constant representing the Gauss beam type.

Bessel 

An enum constant representing the Bessel beam type.

Other 

An enum constant representing some other beam type.

◆ DimensionIndex

enum libCZI::DimensionIndex : std::uint8_t
strong

Values that represent dimension indexes.

Enumerator
invalid 

Invalid dimension index.

MinDim 

This enum must be have the value of the lowest (valid) dimension index.

The Z-dimension.

The C-dimension ("channel").

The T-dimension ("time").

The R-dimension ("rotation").

The S-dimension ("scene").

The I-dimension ("illumination").

The H-dimension ("phase").

The V-dimension ("view").

The B-dimension ("block") - its use is deprecated.

MaxDim 

This enum must be have the value of the highest (valid) dimension index.

◆ ImageDecoderType

Values that represent image decoder types - used for distinguishing decoder objects created by ISite::GetDecoder.

Enumerator
JPXR_JxrLib 

Identifies an decoder capable of decoding a JPG-XR compressed image.

ZStd0 

Identifies a decoder capable of decoding a zstd compressed image (type "zstd0").

ZStd1 

Identifies a decoder capable of decoding a zstd compressed image (type "zstd1").

◆ PixelType

enum libCZI::PixelType : std::uint8_t
strong

An enum representing a pixel-type.

Enumerator
Invalid 

Invalid pixel type.

Gray8 

Grayscale 8-bit unsigned.

Gray16 

Grayscale 16-bit unsigned.

Gray32Float 

Grayscale 4 byte float.

Bgr24 

BGR-color 8-bytes triples (memory order B, G, R).

Bgr48 

BGR-color 16-bytes triples (memory order B, G, R).

Bgr96Float 

BGR-color 4 byte float triples (memory order B, G, R).

Bgra32 

Currently not supported in libCZI.

Gray64ComplexFloat 

Currently not supported in libCZI.

Bgr192ComplexFloat 

Currently not supported in libCZI.

Gray32 

Currently not supported in libCZI.

Gray64Float 

Currently not supported in libCZI.

◆ SiteObjectType

Values that represent site-object-types. On Windows, we provide one Site-object that uses the WIC-codec and one that uses an internal JPEG-XR decoder (JXRLib).

Enumerator
Default 

An enum constant representing the default option (which is JXRLib)

WithJxrDecoder 

An enum constant representing a Site-object using the internal JXRLib.

WithWICDecoder 

An enum constant representing a Site-object using the Windows WIC-codec. Note that this option is only available on Windows.

◆ SubBlockPyramidType

enum libCZI::SubBlockPyramidType : std::uint8_t
strong

This enum is used in the context of a subblock to describe which "type of pyramid" is represented by the subblock. The significance and importance of this enum is not yet fully understood, and seems questionable. It is not recommended to make use of it at this point for any purposes.

Enumerator
Invalid 

Invalid pyramid type.

None 

No pyramid (indicating that the subblock is not a pyramid subblock, but a layer-0 subblock).

SingleSubBlock 

The subblock is a pyramid subblock, and it covers a single subblock of the lower layer (or: it is a minification of a single lower-layer-subblock).

MultiSubBlock 

The subblock is a pyramid subblock, and it covers multiple subblocks of the lower layer.

Function Documentation

◆ CreateAccesor()

LIBCZI_API std::shared_ptr<IAccessor> libCZI::CreateAccesor ( std::shared_ptr< ISubBlockRepository repository,
AccessorType  accessorType 
)

Creates an accessor of the specified type which uses the specified sub-block repository.

Parameters
repositoryThe sub-block repository.
accessorTypeType of the accessor.
Returns
The newly created accessor object.

◆ CreateBitmapFromSubBlock()

LIBCZI_API std::shared_ptr<IBitmapData> libCZI::CreateBitmapFromSubBlock ( ISubBlock subBlk)

Creates bitmap from sub block.

Parameters
[in]subBlkThe sub-block.
Returns
The newly allocated bitmap containing the image from the sub-block.

◆ CreateCZIReader()

LIBCZI_API std::shared_ptr<ICZIReader> libCZI::CreateCZIReader ( )

Creates a new instance of the CZI-reader class.

Returns
The newly created CZI-reader.

◆ CreateCZIReaderWriter()

LIBCZI_API std::shared_ptr<ICziReaderWriter> libCZI::CreateCZIReaderWriter ( )

Creates a new instance of the CZI-reader-writer class.

Returns
The newly created CZI-reader-writer.

◆ CreateCZIWriter()

LIBCZI_API std::shared_ptr<ICziWriter> libCZI::CreateCZIWriter ( const CZIWriterOptions options = nullptr)

Creates a new instance of the CZI-writer class.

Parameters
options(Optional) Options for controlling the operation. This argument may be null, in which case default options are used.
Returns
The newly created CZI-writer.

◆ CreateInputOutputStreamForFile()

LIBCZI_API std::shared_ptr<IInputOutputStream> libCZI::CreateInputOutputStreamForFile ( const wchar_t *  szFilename)

Creates an input-output-stream for the specified filename. A stock-implementation of a stream-object (for modifying a file from disk) is provided here. For a more specialized and tuned version, libCZI-users should consider implementing the interface "IInputOutputStream" in their own code.

Parameters
szFilenameFilename of the file.
Returns
The newly created input-output-stream object for the file if successful.

◆ CreateMetadataBuilder()

LIBCZI_API std::shared_ptr<ICziMetadataBuilder> libCZI::CreateMetadataBuilder ( )

Creates a metadata-builder-object.

Returns
The newly created metadata-builder-object.

◆ CreateMetadataBuilderFromXml()

LIBCZI_API std::shared_ptr<ICziMetadataBuilder> libCZI::CreateMetadataBuilderFromXml ( const std::string &  xml)

Creates metadata builder object from the specified UTF8-encoded XML-string. If the XML is invalid or if the root-node "ImageDocument" is not present, then an exception is thrown.

Parameters
xmlThe UTF8-encoded XML string.
Returns
The newly created metadata-builder-object.

◆ CreateMetaFromMetadataSegment()

LIBCZI_API std::shared_ptr<ICziMetadata> libCZI::CreateMetaFromMetadataSegment ( IMetadataSegment metadataSegment)

Creates metadata-object from a metadata segment.

Parameters
[in]metadataSegmentThe metadata segment object.
Returns
The newly created metadata object.

◆ CreateOutputStreamForFile()

LIBCZI_API std::shared_ptr<IOutputStream> libCZI::CreateOutputStreamForFile ( const wchar_t *  szFilename,
bool  overwriteExisting 
)

Creates an output-stream-object for the specified filename. A stock-implementation of a stream-object (for writing a file from disk) is provided here. For a more specialized and tuned version, libCZI-users should consider implementing the interface "IOutputStream" in their own code.

Parameters
szFilenameFilename of the file.
overwriteExistingTrue if an existing file should be overwritten, false otherwise.
Returns
The new output-stream object.

◆ CreateStreamFromFile()

LIBCZI_API std::shared_ptr<IStream> libCZI::CreateStreamFromFile ( const wchar_t *  szFilename)

Creates a stream-object for the specified file. A stock-implementation of a stream-object (for reading a file from disk) is provided here.

Parameters
szFilenameFilename of the file.
Returns
The new stream object.

◆ CreateStreamFromMemory() [1/2]

LIBCZI_API std::shared_ptr<IStream> libCZI::CreateStreamFromMemory ( IAttachment attachment)

Creates a stream-object on the memory-block in an attachment.

Parameters
attachmentPointer to attachment.
Returns
The new stream object.

◆ CreateStreamFromMemory() [2/2]

LIBCZI_API std::shared_ptr<IStream> libCZI::CreateStreamFromMemory ( std::shared_ptr< const void >  ptr,
size_t  dataSize 
)

Creates a stream-object on a memory-block.

Parameters
ptrShared pointer to a memory-block.
dataSizeSize of the memory-block.
Returns
The new stream object.

◆ CreateSubBlockCache()

LIBCZI_API std::shared_ptr<ISubBlockCache> libCZI::CreateSubBlockCache ( )

Creates a sub block cache object.

Returns
The newly created sub block cache.

◆ GetDefaultSiteObject()

LIBCZI_API ISite* libCZI::GetDefaultSiteObject ( libCZI::SiteObjectType  type)

Gets one of the available Site-objects. The objects returned are static objects with an unbounded lifetime.

Parameters
typeThe Site-object type.
Returns
nullptr if it fails, else the default site object (of the specified type).

◆ GetLibCZIBuildInformation()

LIBCZI_API void libCZI::GetLibCZIBuildInformation ( BuildInformation info)

Gets information about the libCZI-library - e.g. how it was built.

Parameters
[out]infoThe information.

◆ GetLibCZIVersion()

LIBCZI_API void libCZI::GetLibCZIVersion ( int *  pMajor,
int *  pMinor = nullptr,
int *  pPatch = nullptr,
int *  pTweak = nullptr 
)

Gets the version of the library. For versioning libCZI, SemVer2 (https://semver.org/) is used. Note that the value of the tweak version number does not have a meaning (as far as SemVer2 is concerned).

Parameters
[out]pMajorIf non-null, will receive the major version number.
[out]pMinorIf non-null, will receive the minor version number.
[out]pPatchIf non-null, will receive the patch version number.
[out]pTweakIf non-null, will receive the tweak version number.

◆ operator<<() [1/2]

std::ostream& libCZI::operator<< ( std::ostream &  os,
const IntRect rect 
)
inline

Stream insertion operator for the libCZI::IntRect type. A string of the form '(x,y,width,height)' is output to the stream.

Parameters
[in]osThe stream to output the rect to.
rectThe rectangle.
Returns
The ostream object os.

◆ operator<<() [2/2]

std::ostream& libCZI::operator<< ( std::ostream &  os,
const IntSize size 
)
inline

Stream insertion operator for the libCZI::IntSize type. A string of the form '(width,height)' is output to the stream.

Parameters
[in]osThe stream to output the size to.
sizeThe size structure.
Returns
The ostream object os.

◆ SetSiteObject()

LIBCZI_API void libCZI::SetSiteObject ( libCZI::ISite pSite)

Sets the global Site-object. This function must only be called once and before any other function in this library is called. The object passed in here must have a lifetime greater than any usage of the library. If no Site-object is set, then at first usage a default Site-object is created and used.

Parameters
[in]pSiteThe Site-object to use. It must not be nullptr.