25 #include "ImportExport.h" 27 #include "priv_guiddef.h" 28 #include "libCZI_exceptions.h" 29 #include "libCZI_DimCoordinate.h" 30 #include "libCZI_Pixels.h" 31 #include "libCZI_Metadata.h" 32 #include "libCZI_Metadata2.h" 33 #include "libCZI_Utilities.h" 34 #include "libCZI_Compositor.h" 35 #include "libCZI_Site.h" 126 LIBCZI_API std::shared_ptr<IAccessor>
CreateAccesor(std::shared_ptr<ISubBlockRepository> repository,
AccessorType accessorType);
138 LIBCZI_API std::shared_ptr<IStream>
CreateStreamFromMemory(std::shared_ptr<const void> ptr,
size_t dataSize);
158 virtual void Read(std::uint64_t offset,
void *pv, std::uint64_t size, std::uint64_t* ptrBytesRead) = 0;
185 if (this->physicalSize.
w > this->physicalSize.h)
187 return double(this->physicalSize.
w) / this->logicalRect.
w;
190 return double(this->physicalSize.
h) / this->logicalRect.
h;
209 virtual const SubBlockInfo& GetSubBlockInfo()
const = 0;
216 virtual void DangerousGetRawData(
MemBlkType type,
const void*& ptr,
size_t& size)
const = 0;
222 virtual std::shared_ptr<const void> GetRawData(
MemBlkType type,
size_t* ptrSize) = 0;
233 virtual std::shared_ptr<IBitmapData> CreateBitmap() = 0;
245 this->DangerousGetRawData(type, p, size);
246 ptr =
static_cast<Q*
>(p);
254 char contentFileType[9];
270 virtual void DangerousGetRawData(
const void*& ptr,
size_t& size)
const = 0;
275 virtual std::shared_ptr<const void> GetRawData(
size_t* ptrSize) = 0;
286 this->DangerousGetRawData(p, size);
306 virtual std::shared_ptr<const void> GetRawData(
MemBlkType type,
size_t* ptrSize) = 0;
313 virtual void DangerousGetRawData(
MemBlkType type,
const void*& ptr,
size_t& size)
const = 0;
371 return this->minMindex <= this->maxMindex ? true :
false;
377 this->subBlockCount = -1;
380 this->dimBounds.
Clear();
381 this->sceneBoundingBoxes.clear();
382 this->minMindex = (std::numeric_limits<int>::max)();
383 this->maxMindex = (std::numeric_limits<int>::min)();
407 bool IsLayer0()
const {
return this->minificationFactor == 0 && this->pyramidLayerNo == 0; }
436 virtual void EnumerateSubBlocks(std::function<
bool(
int index,
const SubBlockInfo& info)> funcEnum) = 0;
446 virtual void EnumSubset(
const IDimCoordinate* planeCoordinate,
const IntRect* roi,
bool onlyLayer0, std::function<
bool(
int index,
const SubBlockInfo& info)> funcEnum) = 0;
453 virtual std::shared_ptr<ISubBlock> ReadSubBlock(
int index) = 0;
466 virtual bool TryGetSubBlockInfoOfArbitrarySubBlockInChannel(
int channelIndex,
SubBlockInfo& info) = 0;
492 virtual void EnumerateAttachments(std::function<
bool(
int index,
const AttachmentInfo& info)> funcEnum) = 0;
501 virtual void EnumerateSubset(
const char* contentFileType,
const char* name, std::function<
bool(
int index,
const AttachmentInfo& infi)> funcEnum) = 0;
510 virtual std::shared_ptr<IAttachment> ReadAttachment(
int index) = 0;
534 virtual void Open(std::shared_ptr<IStream> stream) = 0;
545 virtual std::shared_ptr<IMetadataSegment> ReadMetadataSegment() = 0;
555 virtual std::shared_ptr<IAccessor> CreateAccessor(
AccessorType accessorType) = 0;
561 virtual void Close() = 0;
586 #include "libCZI_Query.h" 587 #include "libCZI_Helpers.h"
PixelType
An enum representing a pixel-type.
Definition: libCZI_Pixels.h:127
CompressionMode
An enum specifying the compression method.
Definition: libCZI_Pixels.h:144
LIBCZI_API void SetSiteObject(libCZI::ISite *pSite)
IntRect boundingBoxLayer0Only
Definition: libCZI.h:353
Definition: libCZI_Compositor.h:239
An enum constant representing the bitmap-data.
Definition: libCZI.h:203
LIBCZI_API std::shared_ptr< ICZIReader > CreateCZIReader()
LIBCZI_API std::shared_ptr< ICziMetadata > CreateMetaFromMetadataSegment(IMetadataSegment *metadataSegment)
std::map< int, std::vector< PyramidLayerStatistics > > scenePyramidStatistics
Definition: libCZI.h:424
LIBCZI_API std::shared_ptr< IStream > CreateStreamFromFile(const wchar_t *szFilename)
Representation of an attachment. An attachment is a binary blob, its inner structure is opaque...
Definition: libCZI.h:259
std::uint8_t minificationFactor
Factor by which adjacent pyramid-layers are shrunk. Commonly used in CZI are 2 or 3...
Definition: libCZI.h:401
CompressionMode mode
The compression mode of the sub-block.
Definition: libCZI.h:167
void DangerousGetRawData(const Q *&ptr, size_t &size) const
Definition: libCZI.h:283
int maxMindex
Definition: libCZI.h:345
The base interface (all accessor-interface must derive from this).
Definition: libCZI_Compositor.h:45
LIBCZI_API void GetLibCZIBuildInformation(BuildInformation &info)
bool IsLayer0() const
Definition: libCZI.h:407
std::shared_ptr< ISingleChannelPyramidLayerTileAccessor > CreateSingleChannelPyramidLayerTileAccessor()
Definition: libCZI.h:572
bool IsMIndexValid() const
Definition: libCZI.h:369
Implementation of a class representing a coordinate (and implementing the IDimCoordinate-interface).
Definition: libCZI_DimCoordinate.h:160
int w
The width of the rectangle.
Definition: libCZI_Pixels.h:37
SiteObjectType
Definition: libCZI.h:50
bool IsNotIdentifiedAsPyramidLayer() const
Definition: libCZI.h:412
Statistics about all sub-blocks found in a CZI-document.
Definition: libCZI.h:333
std::uint32_t h
The height.
Definition: libCZI_Pixels.h:107
int h
The height of the rectangle.
Definition: libCZI_Pixels.h:38
std::uint8_t pyramidLayerNo
The pyramid layer number.
Definition: libCZI.h:402
std::map< int, BoundingBoxes > sceneBoundingBoxes
Definition: libCZI.h:363
void Clear(libCZI::DimensionIndex dimension)
Definition: libCZI_DimCoordinate.h:366
Information about a pyramid-layer.
Definition: libCZI.h:416
AccessorType
Values that represent the accessor types.
Definition: libCZI_Compositor.h:37
int minMindex
Definition: libCZI.h:341
An enum constant representing the default option (which is JXRLib)
This structure gathers the bounding-boxes determined from all sub-blocks and only be those on pyramid...
Definition: libCZI.h:323
Information about an attachment.
Definition: libCZI.h:251
The scaling-single-channel-tile accessor (associated interface: ISingleChannelScalingTileAccessor).
void Invalidate()
Invalidates this object.
Definition: libCZI.h:375
An enum constant representing the metadata.
Definition: libCZI.h:202
Interface used to represent a coordinate (in the space of the dimensions identified by DimensionIndex...
Definition: libCZI_DimCoordinate.h:54
int subBlockCount
Definition: libCZI.h:337
libCZI::IntSize physicalSize
The physical size of the bitmap (which may be different to the size of logicalRect).
Definition: libCZI.h:175
Definition: libCZI_Compositor.h:66
PyramidLayerInfo layerInfo
This identifies the pyramid-layer.
Definition: libCZI.h:418
int mIndex
The M-index of the sub-block (if available). If not available, it has the value std::numeric_limits<i...
Definition: libCZI.h:177
IntRect boundingBoxLayer0
The bounding-boxes determined only from sub-blocks of pyramid-layer 0.
Definition: libCZI.h:329
The single-channel-tile accessor (associated interface: ISingleChannelTileAccessor).
std::shared_ptr< ISingleChannelTileAccessor > CreateSingleChannelTileAccessor()
Definition: libCZI.h:565
CDimBounds dimBounds
Definition: libCZI.h:357
Definition: libCZI_Site.h:69
void DangerousGetRawData(MemBlkType type, const Q *&ptr, size_t &size) const
Definition: libCZI.h:242
Implementation of a class representing an interval (and implementing the libCZI::IDimBounds-interface...
Definition: libCZI_DimCoordinate.h:299
void Invalidate()
Invalidates this object.
Definition: libCZI_Pixels.h:41
A rectangle (with integer coordinates).
Definition: libCZI_Pixels.h:33
libCZI::CDimCoordinate coordinate
The coordinate of the sub-block.
Definition: libCZI.h:171
External interfaces, classes, functions and structs are found in the namespace "libCZI".
Definition: libCZI.h:45
An enum constant representing a Site-object using the internal JXRLib.
This interface is used to represent the CZI-file.
Definition: libCZI.h:524
LIBCZI_API ISite * GetDefaultSiteObject(libCZI::SiteObjectType type)
LIBCZI_API void GetLibCZIVersion(int *pMajor, int *pMinor)
LIBCZI_API std::shared_ptr< IBitmapData > CreateBitmapFromSubBlock(ISubBlock *subBlk)
LIBCZI_API std::shared_ptr< IAccessor > CreateAccesor(std::shared_ptr< ISubBlockRepository > repository, AccessorType accessorType)
std::shared_ptr< ISingleChannelScalingTileAccessor > CreateSingleChannelScalingTileAccessor()
Definition: libCZI.h:579
PixelType pixelType
The pixel type of the sub-block.
Definition: libCZI.h:169
A structure representing a size (width and height) in integers.
Definition: libCZI_Pixels.h:104
MemBlkType
Values that represent the three different data types found in a sub-block.
Definition: libCZI.h:200
The single-channel-pyramidlayer-tile accessor (associated interface: ISingleChannelPyramidLayerTileAc...
Interface for the attachment repository. This interface is used to access the attachments in a CZI-fi...
Definition: libCZI.h:482
Interface for sub-block repository. This interface is used to access the sub-blocks in a CZI-file...
Definition: libCZI.h:428
int count
The number of sub-blocks which are present in the pyramid-layer.
Definition: libCZI.h:419
Statistics about the pyramid-layers.
Definition: libCZI.h:388
LIBCZI_API std::shared_ptr< IStream > CreateStreamFromMemory(std::shared_ptr< const void > ptr, size_t dataSize)
IntRect boundingBox
The bounding-box determined from all sub-blocks.
Definition: libCZI.h:326
std::string name
A string identifying the content of the attachment.
Definition: libCZI.h:255
Definition: libCZI_Compositor.h:165
IntRect boundingBox
Definition: libCZI.h:349
Information about a sub-block.
Definition: libCZI.h:164
libCZI::IntRect logicalRect
The rectangle where the bitmap (in this sub-block) is located.
Definition: libCZI.h:173
GUID contentGuid
A Guid identifying the content of the attachment.
Definition: libCZI.h:253
double GetZoom() const
Definition: libCZI.h:183
std::uint32_t w
The width.
Definition: libCZI_Pixels.h:106