Get the length in bytes of a frame This method is useful when implementing a viewer for faster processing of encapsulated formats. For example if the object encapsulates a multi-frame jpeg sequence, you can use this call to extract the jpeg frames directly from the file into buffer and display them. More...
Functions | |
HRESULT | IDCXOBJ::GetEncapsulatedFrameLength ([in] long frameNumber, [out, retval] long *length) |
HRESULT | IDCXOBJ::GetEncapsulatedFrameData ([in] long frameNumber, [in] unsigned __int3264 bufPtr, [in] long bufLen) |
Get the data of one encapsulated frame. More... | |
HRESULT | IDCXOBJ::GetEncapsulatedFrameRef ([in] long frameNumber, [out] unsigned __int3264 *ptr, [out, retval] long *length) |
Get a reference to the memory of one encapsulated frame. More... | |
Get the length in bytes of a frame This method is useful when implementing a viewer for faster processing of encapsulated formats. For example if the object encapsulates a multi-frame jpeg sequence, you can use this call to extract the jpeg frames directly from the file into buffer and display them.
DICOM objects stores encoded/compressed images in pixel data sequnce. The pixel data sequence holds multiple items, each can hold part or all of the data of a single frame of the image. MODALIZER-SDK supports fragmented pixel data only for single frame objects. i.e. either every frame is stored in a single item or all the items comprise a single frame. The case in which multiple frames are stored in the object and there may be frames that are fragmented into multiple sequence items is not supported. For this case, use IDCXELM to get the pixel data element and then use IDCXSEQ to access the data of every item.
If the image is a fragmented sigle frame image and frameNumber = 0 is passed the reult is the total sum of the items lengthes When frameNumber > 1, the result is the length of the item numberd frameNumber (0 based).
Fragmented frames in \Note There's an assumption here that the entire frame is stored in one fragment.
HRESULT IDCXOBJ::GetEncapsulatedFrameData | ( | [in] long | frameNumber, |
[in] unsigned __int3264 | bufPtr, | ||
[in] long | bufLen | ||
) |
Get the data of one encapsulated frame.
For fragmented single frame images, when frameNumber == 0, the result is the concatenation of all items. When frameNumber > 0 the result is the data of the matching item. See GetEncapsulatedFrameLength
frameNumber | The requested frame number |
bufPtr | A pointer to a pre-allocated buffer where the data should be copied to |
bufLen | The length in bytes of bufPtr (the pre-allocated buffer) |
HRESULT IDCXOBJ::GetEncapsulatedFrameLength | ( | [in] long | frameNumber, |
[out, retval] long * | length | ||
) |
frameNumber | The requested frame number |
length | (out) The length in bytes of the requested frame |
HRESULT IDCXOBJ::GetEncapsulatedFrameRef | ( | [in] long | frameNumber, |
[out] unsigned __int3264 * | ptr, | ||
[out, retval] long * | length | ||
) |
Get a reference to the memory of one encapsulated frame.
This call is similar to GetEncapsulatedFrameData but instead of making a copy of the data it return a pointer to the internal memory of the object where the frame is stored.
This function ignores any fragmentation and returns the reference and length of the mathing item.
See GetEncapsulatedFrameLength and GetEncapsulatedFrameData