libCZI
Reading and Writing CZI documents made easy
|
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. | |
Functions | |
LIBCZI_API ISite * | GetDefaultSiteObject (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< ICZIReader > | CreateCZIReader () |
LIBCZI_API std::shared_ptr< ICziWriter > | CreateCZIWriter (const CZIWriterOptions *options=nullptr) |
LIBCZI_API std::shared_ptr< ICziReaderWriter > | CreateCZIReaderWriter () |
LIBCZI_API std::shared_ptr< IBitmapData > | CreateBitmapFromSubBlock (ISubBlock *subBlk) |
LIBCZI_API std::shared_ptr< ICziMetadata > | CreateMetaFromMetadataSegment (IMetadataSegment *metadataSegment) |
LIBCZI_API std::shared_ptr< IAccessor > | CreateAccesor (std::shared_ptr< ISubBlockRepository > repository, AccessorType accessorType) |
LIBCZI_API std::shared_ptr< IStream > | CreateStreamFromFile (const wchar_t *szFilename) |
LIBCZI_API std::shared_ptr< IStream > | CreateStreamFromMemory (std::shared_ptr< const void > ptr, size_t dataSize) |
LIBCZI_API std::shared_ptr< IStream > | CreateStreamFromMemory (IAttachment *attachment) |
LIBCZI_API std::shared_ptr< IOutputStream > | CreateOutputStreamForFile (const wchar_t *szFilename, bool overwriteExisting) |
LIBCZI_API std::shared_ptr< IInputOutputStream > | CreateInputOutputStreamForFile (const wchar_t *szFilename) |
LIBCZI_API std::shared_ptr< ICziMetadataBuilder > | CreateMetadataBuilder () |
LIBCZI_API std::shared_ptr< ISubBlockCache > | CreateSubBlockCache () |
LIBCZI_API std::shared_ptr< ICziMetadataBuilder > | CreateMetadataBuilderFromXml (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. | |
External interfaces, classes, functions and structs are found in the namespace "libCZI".
|
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). |
|
strong |
|
strong |
|
strong |
|
strong |
An enum specifying the compression method.
|
strong |
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.
|
strong |
Values that represent the acquisition mode of a channel. The acquisition mode describes the type of microscopy performed for each channel.
|
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.
|
strong |
Values that represent a contrast method, a technique used to achieve contrast, for the images in a channel.
|
strong |
Values that represent the method of illumination used to acquire the channel.
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
Values that represent the laser scanning mode.
|
strong |
|
strong |
|
strong |
Values that represent dimension indexes.
|
strong |
Values that represent image decoder types - used for distinguishing decoder objects created by ISite::GetDecoder
.
|
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. |
|
strong |
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).
|
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.
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.
repository | The sub-block repository. |
accessorType | Type of the accessor. |
LIBCZI_API std::shared_ptr<IBitmapData> libCZI::CreateBitmapFromSubBlock | ( | ISubBlock * | subBlk | ) |
Creates bitmap from sub block.
[in] | subBlk | The sub-block. |
LIBCZI_API std::shared_ptr<ICZIReader> libCZI::CreateCZIReader | ( | ) |
Creates a new instance of the CZI-reader class.
LIBCZI_API std::shared_ptr<ICziReaderWriter> libCZI::CreateCZIReaderWriter | ( | ) |
Creates a new instance of the CZI-reader-writer class.
LIBCZI_API std::shared_ptr<ICziWriter> libCZI::CreateCZIWriter | ( | const CZIWriterOptions * | options = nullptr | ) |
Creates a new instance of the CZI-writer class.
options | (Optional) Options for controlling the operation. This argument may be null, in which case default options are used. |
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.
szFilename | Filename of the file. |
LIBCZI_API std::shared_ptr<ICziMetadataBuilder> libCZI::CreateMetadataBuilder | ( | ) |
Creates a metadata-builder-object.
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.
xml | The UTF8-encoded XML string. |
LIBCZI_API std::shared_ptr<ICziMetadata> libCZI::CreateMetaFromMetadataSegment | ( | IMetadataSegment * | metadataSegment | ) |
Creates metadata-object from a metadata segment.
[in] | metadataSegment | The metadata segment object. |
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.
szFilename | Filename of the file. |
overwriteExisting | True if an existing file should be overwritten, false otherwise. |
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.
szFilename | Filename of the file. |
LIBCZI_API std::shared_ptr<IStream> libCZI::CreateStreamFromMemory | ( | IAttachment * | attachment | ) |
Creates a stream-object on the memory-block in an attachment.
attachment | Pointer to attachment. |
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.
ptr | Shared pointer to a memory-block. |
dataSize | Size of the memory-block. |
LIBCZI_API std::shared_ptr<ISubBlockCache> libCZI::CreateSubBlockCache | ( | ) |
Creates a sub block cache object.
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.
type | The Site-object type. |
LIBCZI_API void libCZI::GetLibCZIBuildInformation | ( | BuildInformation & | info | ) |
Gets information about the libCZI-library - e.g. how it was built.
[out] | info | The information. |
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).
[out] | pMajor | If non-null, will receive the major version number. |
[out] | pMinor | If non-null, will receive the minor version number. |
[out] | pPatch | If non-null, will receive the patch version number. |
[out] | pTweak | If non-null, will receive the tweak version number. |
|
inline |
Stream insertion operator for the libCZI::IntRect type. A string of the form '(x,y,width,height)' is output to the stream.
[in] | os | The stream to output the rect to. |
rect | The rectangle. |
os
.
|
inline |
Stream insertion operator for the libCZI::IntSize type. A string of the form '(width,height)' is output to the stream.
[in] | os | The stream to output the size to. |
size | The size structure. |
os
. 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.
[in] | pSite | The Site-object to use. It must not be nullptr. |