#include "l_bitmap.h"
L_LTCLR_API L_INT L_ConvertParametricCurveTypeToBuffer(pData, pIccTagParametricCurveType)
Converts the information in an ICCTAG_PARAMETRIC_CURVE_TYPE structure into one buffer of sequential bytes.
Pointer to a buffer to be updated with the converted information as one buffer of sequential bytes.
Pointer to an ICCTAG_PARAMETRIC_CURVE_TYPE structure that contains the information to be converted into one buffer of sequential data.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
The pData pointer must be allocated by the user. Its size must be equal to the size in bytes of the structure pointed to by pIccTagParametricCurveType parameter.
The size of pData buffer can be calculated as follows: 4 + 4 + 2 + 2 + 4 * number of parameters retrieved by calling the L_GetParametricCurveNumberOfParameters function. For more information, refer to the ICC.1:2004-10 specification page 56 in the (http://www.color.org/index.xalter) website.
Required DLLs and Libraries
Win32, x64.
This example converts a ICCTAG_PARAMETRIC_CURVE_TYPE structure into a buffer.
L_UCHAR* ConvertParametricCurveTypeToBufferExample(pICCTAG_PARAMETRIC_CURVE_TYPE pIccParametricCurveType, L_INT* pnRet)
{
L_UCHAR* pData;
L_INT nDataSize;
// calculate the data size
nDataSize = 4 + 4 + 2 + 2 + 4 * L_GetParametricCurveNumberOfParameters((ICCFUNCTIONTYPE) pIccParametricCurveType->ParametricCurve.uFunctionType);
// then allocate the destination data pointer
pData = (L_UCHAR*) calloc(nDataSize, sizeof(L_UCHAR));
if (pData == NULL)
{
*pnRet = ERROR_NO_MEMORY;
return NULL;
}
// now convert it into a buffer
*pnRet = L_ConvertParametricCurveTypeToBuffer(pData, pIccParametricCurveType);
if(*pnRet != SUCCESS)
return NULL;
return pData;
}