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.

Classes

class  CIccInfo

Defines

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

Functions

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 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)
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)

Variables

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
ICCPROFLIB_API CIccInfo icInfo


Detailed Description

File: IccUtil.h

Contains: Implementation of utility classes/functions

Version: V1

Copyright: © see ICC Software License


Define Documentation

#define icSwab16 (  x   )     icSwab16Ptr(&x)
 

#define icSwab32 (  x   )     icSwab32Ptr(&x)
 

#define icSwab64 (  x   )     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

Return:

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
)  [inline]
 

void icSwab16Ptr (  void *  pVoid  )  [inline]
 

void icSwab32Array (  void *  pVoid,
int  num
)  [inline]
 

void icSwab32Ptr (  void *  pVoid  )  [inline]
 

void icSwab64Array (  void *  pVoid,
int  num
)  [inline]
 

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 CIccInfo icInfo
 

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 1.3.9.1