SampleICC Main srcforge
Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

IccUtil.h File Reference

#include "IccDefs.h"
#include "IccProfLibConf.h"
#include <string>

Go to the source code of this file.


class  CIccInfo


#define icSwab16(x)   icSwab16Ptr(&x)
#define icSwab32(x)   icSwab32Ptr(&x)
#define icSwab64(x)   icSwab64Ptr(&x)


icValidateStatus ICCPROFLIB_API icMaxStatus (icValidateStatus s1, icValidateStatus s2)
bool ICCPROFLIB_API icIsSpaceCLR (icColorSpaceSignature sig)
void ICCPROFLIB_API icColorIndexName (icChar *szName, icColorSpaceSignature csSig, int nIndex, int nColors, const icChar *szUnknown)
void ICCPROFLIB_API icColorValue (icChar *szValue, icFloatNumber nValue, icColorSpaceSignature csSig, int nIndex)
bool ICCPROFLIB_API icMatrixInvert3x3 (icFloatNumber *matrix)
void ICCPROFLIB_API icMatrixMultiply3x3 (icFloatNumber *result, const icFloatNumber *l, const icFloatNumber *r)
void ICCPROFLIB_API icVectorApplyMatrix3x3 (icFloatNumber *result, const icFloatNumber *m, const icFloatNumber *v)
icS15Fixed16Number ICCPROFLIB_API icDtoF (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icFtoD (icS15Fixed16Number num)
icU16Fixed16Number ICCPROFLIB_API icDtoUF (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icUFtoD (icU16Fixed16Number num)
icU1Fixed15Number ICCPROFLIB_API icDtoUSF (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icUSFtoD (icU1Fixed15Number num)
icU8Fixed8Number ICCPROFLIB_API icDtoUCF (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icUCFtoD (icU8Fixed8Number num)
icUInt8Number ICCPROFLIB_API icFtoU8 (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icU8toF (icUInt8Number num)
icUInt16Number ICCPROFLIB_API icFtoU16 (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icU16toF (icUInt16Number num)
icUInt8Number ICCPROFLIB_API icABtoU8 (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icU8toAB (icUInt8Number num)
icUInt16Number ICCPROFLIB_API icABtoU16 (icFloatNumber num)
icFloatNumber ICCPROFLIB_API icU16toAB (icUInt16Number num)
void ICCPROFLIB_API icNormXYZ (icFloatNumber *XYZ, icFloatNumber *WhiteXYZ=NULL)
void ICCPROFLIB_API icDeNormXYZ (icFloatNumber *XYZ, icFloatNumber *WhiteXYZ=NULL)
void ICCPROFLIB_API icXYZtoLab (icFloatNumber *Lab, icFloatNumber *XYZ=NULL, icFloatNumber *WhiteXYZ=NULL)
void ICCPROFLIB_API icLabtoXYZ (icFloatNumber *XYZ, icFloatNumber *Lab=NULL, icFloatNumber *WhiteXYZ=NULL)
void ICCPROFLIB_API icLab2Lch (icFloatNumber *Lch, icFloatNumber *Lab=NULL)
void ICCPROFLIB_API icLch2Lab (icFloatNumber *Lab, icFloatNumber *Lch=NULL)
icFloatNumber ICCPROFLIB_API icMin (icFloatNumber v1, icFloatNumber v2)
icFloatNumber ICCPROFLIB_API icMax (icFloatNumber v1, icFloatNumber v2)
icUInt32Number ICCPROFLIB_API icIntMin (icUInt32Number v1, icUInt32Number v2)
icUInt32Number ICCPROFLIB_API icIntMax (icUInt32Number v1, icUInt32Number v2)
void ICCPROFLIB_API icLabFromPcs (icFloatNumber *Lab)
 Here are some conversion routines to convert to regular Lab encoding.
void ICCPROFLIB_API icLabToPcs (icFloatNumber *Lab)
void ICCPROFLIB_API icXyzFromPcs (icFloatNumber *XYZ)
 Here are some conversion routines to convert to regular XYZ encoding.
void ICCPROFLIB_API icXyzToPcs (icFloatNumber *XYZ)
void ICCPROFLIB_API icMemDump (std::string &sDump, void *pBuf, icUInt32Number nNum)
void ICCPROFLIB_API icMatrixDump (std::string &sDump, icS15Fixed16Number *pMatrix)
ICCPROFLIB_API const icCharicGetSig (icChar *pBuf, icUInt32Number sig, bool bGetHexVal=true)
ICCPROFLIB_API const icCharicGetSigStr (icChar *pBuf, icUInt32Number nSig)
icUInt32Number ICCPROFLIB_API icGetSigVal (const icChar *pBuf)
icUInt32Number ICCPROFLIB_API icGetSpaceSamples (icColorSpaceSignature sig)
void icSwab16Ptr (void *pVoid)
void icSwab16Array (void *pVoid, int num)
void icSwab32Ptr (void *pVoid)
void icSwab32Array (void *pVoid, int num)
void icSwab64Ptr (void *pVoid)
void icSwab64Array (void *pVoid, int num)


ICCPROFLIB_API icFloatNumber icD50XYZ [3]
ICCPROFLIB_API icFloatNumber icD50XYZxx [3]
ICCPROFLIB_API const char * icValidateWarningMsg
ICCPROFLIB_API const char * icValidateNonCompliantMsg
ICCPROFLIB_API const char * icValidateCriticalErrorMsg

Detailed Description

File: IccUtil.h

Contains: Implementation of utility classes/functions

Version: V1

Copyright: see ICC Software License

Define Documentation

#define icSwab16  )     icSwab16Ptr(&x)

#define icSwab32  )     icSwab32Ptr(&x)

#define icSwab64  )     icSwab64Ptr(&x)

Function Documentation

icUInt16Number ICCPROFLIB_API icABtoU16 icFloatNumber  num  ) 

icUInt8Number ICCPROFLIB_API icABtoU8 icFloatNumber  num  ) 

void ICCPROFLIB_API icColorIndexName icChar szName,
icColorSpaceSignature  csSig,
int  nIndex,
int  nColors,
const icChar szUnknown

void ICCPROFLIB_API icColorValue icChar szValue,
icFloatNumber  nValue,
icColorSpaceSignature  csSig,
int  nIndex

void ICCPROFLIB_API icDeNormXYZ icFloatNumber XYZ,
icFloatNumber WhiteXYZ = NULL

icS15Fixed16Number ICCPROFLIB_API icDtoF icFloatNumber  num  ) 

icU8Fixed8Number ICCPROFLIB_API icDtoUCF icFloatNumber  num  ) 

icU16Fixed16Number ICCPROFLIB_API icDtoUF icFloatNumber  num  ) 

icU1Fixed15Number ICCPROFLIB_API icDtoUSF icFloatNumber  num  ) 

icFloatNumber ICCPROFLIB_API icFtoD icS15Fixed16Number  num  ) 

icUInt16Number ICCPROFLIB_API icFtoU16 icFloatNumber  num  ) 

icUInt8Number ICCPROFLIB_API icFtoU8 icFloatNumber  num  ) 

ICCPROFLIB_API const icChar* icGetSig icChar pBuf,
icUInt32Number  sig,
bool  bGetHexVal = true

ICCPROFLIB_API const icChar* icGetSigStr icChar pBuf,
icUInt32Number  nSig

icUInt32Number ICCPROFLIB_API icGetSigVal const icChar pBuf  ) 

icUInt32Number ICCPROFLIB_API icGetSpaceSamples icColorSpaceSignature  sig  ) 

icUInt32Number ICCPROFLIB_API icIntMax icUInt32Number  v1,
icUInt32Number  v2

icUInt32Number ICCPROFLIB_API icIntMin icUInt32Number  v1,
icUInt32Number  v2

bool ICCPROFLIB_API icIsSpaceCLR icColorSpaceSignature  sig  ) 

void ICCPROFLIB_API icLab2Lch icFloatNumber Lch,
icFloatNumber Lab = NULL

void ICCPROFLIB_API icLabFromPcs icFloatNumber Lab  ) 

Here are some conversion routines to convert to regular Lab encoding.

Floating point encoding of Lab in PCS is in range 0.0 to 1.0

void ICCPROFLIB_API icLabToPcs icFloatNumber Lab  ) 

void ICCPROFLIB_API icLabtoXYZ icFloatNumber XYZ,
icFloatNumber Lab = NULL,
icFloatNumber WhiteXYZ = NULL

void ICCPROFLIB_API icLch2Lab icFloatNumber Lab,
icFloatNumber Lch = NULL

void ICCPROFLIB_API icMatrixDump std::string &  sDump,
icS15Fixed16Number pMatrix

bool ICCPROFLIB_API icMatrixInvert3x3 icFloatNumber M  ) 

Name: icMatrixInvert3x3

Purpose: Inversion of a 3x3 matrix using the Adjoint Cofactor and the determinant of the 3x3 matrix.

Note: Matrix index positions: 0 1 2 3 4 5 6 7 8

Args: M = matrix to invert.

Return: true = matrix is invertible and stored back into M, false = matrix is not invertible.

void ICCPROFLIB_API icMatrixMultiply3x3 icFloatNumber result,
const icFloatNumber l,
const icFloatNumber r

Name: icMatrixMultiply3x3

Purpose: Multiply two 3x3 matricies resulting in a 3x3 matrix.

Note: Matrix index positions: 0 1 2 3 4 5 6 7 8

Args: result = matrix to recieve result. l = left matrix to multiply (matrix multiplication is order dependent) r = right matrix to multiply (matrix multiplicaiton is order dependent)

icFloatNumber ICCPROFLIB_API icMax icFloatNumber  v1,
icFloatNumber  v2

icValidateStatus ICCPROFLIB_API icMaxStatus icValidateStatus  s1,
icValidateStatus  s2

Name: icMaxStatus

Purpose: return worst status

Args: s1, s2


void ICCPROFLIB_API icMemDump std::string &  sDump,
void *  pBuf,
icUInt32Number  nNum

icFloatNumber ICCPROFLIB_API icMin icFloatNumber  v1,
icFloatNumber  v2

void ICCPROFLIB_API icNormXYZ icFloatNumber XYZ,
icFloatNumber WhiteXYZ = NULL

void icSwab16Array void *  pVoid,
int  num

void icSwab16Ptr void *  pVoid  )  [inline]

void icSwab32Array void *  pVoid,
int  num

void icSwab32Ptr void *  pVoid  )  [inline]

void icSwab64Array void *  pVoid,
int  num

void icSwab64Ptr void *  pVoid  )  [inline]

icFloatNumber ICCPROFLIB_API icU16toAB icUInt16Number  num  ) 

icFloatNumber ICCPROFLIB_API icU16toF icUInt16Number  num  ) 

icFloatNumber ICCPROFLIB_API icU8toAB icUInt8Number  num  ) 

icFloatNumber ICCPROFLIB_API icU8toF icUInt8Number  num  ) 

icFloatNumber ICCPROFLIB_API icUCFtoD icU8Fixed8Number  num  ) 

icFloatNumber ICCPROFLIB_API icUFtoD icU16Fixed16Number  num  ) 

icFloatNumber ICCPROFLIB_API icUSFtoD icU1Fixed15Number  num  ) 

void ICCPROFLIB_API icVectorApplyMatrix3x3 icFloatNumber result,
const icFloatNumber m,
const icFloatNumber v

Name: icVectorApplyMatrix3x3

Purpose: Applies a 3x3 matrix to a 3 element column vector.

Note: Matrix index positions: 0 1 2 3 4 5 6 7 8

Note: result = m x v

Args: result = vector to receive result. m = matrix to multiply v = vector to apply matrix to

void ICCPROFLIB_API icXyzFromPcs icFloatNumber XYZ  ) 

Here are some conversion routines to convert to regular XYZ encoding.

Floating point encoding of XYZ in PCS is in range 0.0 to 1.0 (Note: X=1.0 is encoded as about 0.5)

void ICCPROFLIB_API icXYZtoLab icFloatNumber Lab,
icFloatNumber XYZ = NULL,
icFloatNumber WhiteXYZ = NULL

void ICCPROFLIB_API icXyzToPcs icFloatNumber XYZ  ) 

Variable Documentation

ICCPROFLIB_API icFloatNumber icD50XYZ[3]

ICCPROFLIB_API icFloatNumber icD50XYZxx[3]


ICCPROFLIB_API const char* icValidateCriticalErrorMsg

ICCPROFLIB_API const char* icValidateNonCompliantMsg

ICCPROFLIB_API const char* icValidateWarningMsg

Generated on Tue Jun 26 17:51:44 2007 for IccProfLib by  doxygen