ICC Profile APIs
Description: C source code API documentation for the Oyranos project.
Keywords: Oyranos,Color Management,Color Management,ICC,CMS,C,doxygen,API,documentation

| Oyranos Color Management System API - Version 0.9.6

Modules | Data Structures | Macros | Enumerations | Functions
ICC Profile APIs
Color

Select, read, manipulate and write ICC Profiles in memory and on disk. More...

Collaboration diagram for ICC Profile APIs:

## Modules
| Profile Lists API
| Fast profile name lists.
| Profile Handling API
| Basic profile helpers.
| ICC helpers
| Functions to convert and interprete ICC defined enums.

## Data Structures
struct | oyProfile_s
| A profile and its attributes. More...
struct | oyProfiles_s
| Tell about the conversion profiles. More...
struct | oyProfileTag_s
| A profile constituting element. More...

## Macros
#define | OY_NO_CACHE_READ 0x01
#define | OY_NO_CACHE_WRITE 0x02
#define | OY_FROM_PROFILE 0x04
#define | OY_COMPUTE 0x08
#define | OY_ICC_VERSION_2 0x10
#define | OY_ICC_VERSION_4 0x20
#define | OY_SKIP_NON_DEFAULT_PATH 0x40
#define | OY_NO_REPAIR 0x80
#define | OY_ALLOW_DUPLICATES 0x100

## Enumerations
enum | oySIGNATURE_TYPE_e { oySIGNATURE_COLOR_SPACE, oySIGNATURE_PCS, oySIGNATURE_SIZE, oySIGNATURE_CMM, oySIGNATURE_VERSION, oySIGNATURE_CLASS, oySIGNATURE_MAGIC, oySIGNATURE_PLATFORM, oySIGNATURE_OPTIONS, oySIGNATURE_MANUFACTURER, oySIGNATURE_MODEL, oySIGNATURE_INTENT, oySIGNATURE_CREATOR, oySIGNATURE_DATETIME_YEAR, oySIGNATURE_DATETIME_MONTH, oySIGNATURE_DATETIME_DAY, oySIGNATURE_DATETIME_HOURS, oySIGNATURE_DATETIME_MINUTES, oySIGNATURE_DATETIME_SECONDS, oySIGNATURE_ILLUMINANT, oySIGNATURE_ILLUMINANT_Y, oySIGNATURE_ILLUMINANT_Z, oySIGNATURE_ATTRIBUTES, oySIGNATURE_ATTRIBUTES2 }
| general profile infosuse for oyProfile_GetSignature More...
enum | oySTATUS_e
| File status type. More...

## Functions
const char * | oyProfileSignatureName (oySIGNATURE_TYPE_e type)
| provide UI name for oySIGNATURE_TYPE_e More...
const char * | oyProfileSignatureDescription (oySIGNATURE_TYPE_e type)
| provide UI description for oySIGNATURE_TYPE_e More...
char ** | oyProfilePathsGet (int *size, oyAlloc_f allocateFunc)
| get Search Path names for ICC Profiles More...

## Detailed Description

Select, read, manipulate and write ICC Profiles in memory and on disk.

To open a profile exist several methods in the oyProfile_Fromxxx APIs. The highest level call is oyProfile_FromName() and supports several names. oyProfile_FromStd(), oyProfile_FromFile() and oyProfile_FromMem() are specialised profile open functions. oyProfile_FromSignature() is used for creating a dummy profile during profile filtering. oyProfile_FromMD5() is a lookup function from a profile hash, e.g. as provided by a 'psid' tag.
Profile properties can be obtained from oyProfile_GetSignature(), like color spaces, date, magic number and so on. oyProfile_GetChannelNames(), oyProfile_GetText() and oyProfile_GetID() provide additional informations.
The profile element functions have Tag in their names. They work together with the oyProfileTag_s APIs.
oyProfile_GetFileName() is a reverse lookup to obtain the name of a installed file from a profile, e.g. find the name of a reachable display profile.

The oyProfiles_Create() allows to create profile lists with fine grained control. oyProfiles_ForStd() creates a list of profiles suitable to be set as default profiles according to the oyPROFILE_e categories. oyProfiles_DeviceRank() can be used together with a given device so sort for a the best match in descenting order.

Low level APIs to obtain pure filenames and handle raw bits are in place:

- Profile Lists API - provides the ICC profile search path content as string list
- Profile Handling API - low level ICC profile I/O and more

## Macro Definition Documentation

## ◆ OY_ALLOW_DUPLICATES

#define OY_ALLOW_DUPLICATES 0x100

show as well duplicate profile ID's

## ◆ OY_COMPUTE

#define OY_COMPUTE 0x08

compute newly

Examples:
  oymd5icc.c.

## ◆ OY_FROM_PROFILE

#define OY_FROM_PROFILE 0x04

use from profile

Examples:
  oymd5icc.c.

## ◆ OY_ICC_VERSION_2

#define OY_ICC_VERSION_2 0x10

filter for version 2 profiles

## ◆ OY_ICC_VERSION_4

#define OY_ICC_VERSION_4 0x20

filter for version 4 profiles

## ◆ OY_NO_CACHE_READ

#define OY_NO_CACHE_READ 0x01

read not from cache

## ◆ OY_NO_CACHE_WRITE

#define OY_NO_CACHE_WRITE 0x02

write not from cache

## ◆ OY_NO_REPAIR

#define OY_NO_REPAIR 0x80

do not try to repair or fix profiles

## ◆ OY_SKIP_NON_DEFAULT_PATH

#define OY_SKIP_NON_DEFAULT_PATH 0x40

ignore profiles outside of default paths

## Enumeration Type Documentation

## ◆ oySIGNATURE_TYPE_e

enum oySIGNATURE_TYPE_e

general profile infosuse for oyProfile_GetSignature

Since
  Oyranos: version 0.1.8

Date
  10 december 2007 (API 0.1.8)

Enumerator
oySIGNATURE_COLOR_SPACE | color space
oySIGNATURE_PCS | profile connection space
oySIGNATURE_SIZE | internal stored size
oySIGNATURE_CMM | prefered CMM
oySIGNATURE_VERSION | version
oySIGNATURE_CLASS | usage class, e.g. 'mntr' ...
oySIGNATURE_MAGIC | magic; ICC: 'acsp'
oySIGNATURE_PLATFORM | operating system
oySIGNATURE_OPTIONS | various ICC header flags
oySIGNATURE_MANUFACTURER | device manufacturer
oySIGNATURE_MODEL | device modell
oySIGNATURE_INTENT | seldom used profile claimed intent
oySIGNATURE_CREATOR | profile creator ID
oySIGNATURE_DATETIME_YEAR | creation time in UTC
oySIGNATURE_DATETIME_MONTH | creation time in UTC
oySIGNATURE_DATETIME_DAY | creation time in UTC
oySIGNATURE_DATETIME_HOURS | creation time in UTC
oySIGNATURE_DATETIME_MINUTES | creation time in UTC
oySIGNATURE_DATETIME_SECONDS | creation time in UTC
oySIGNATURE_ILLUMINANT | profile illuminant
oySIGNATURE_ILLUMINANT_Y | profile illuminant
oySIGNATURE_ILLUMINANT_Z | profile illuminant
oySIGNATURE_ATTRIBUTES | various ICC header attributes
oySIGNATURE_ATTRIBUTES2 | various ICC header attributes

## ◆ oySTATUS_e

enum oySTATUS_e

File status type.

## Function Documentation

## ◆ oyProfilePathsGet()

char** oyProfilePathsGet | ( | int * | size,
|  | oyAlloc_f | allocateFunc
| ) |  |

get Search Path names for ICC Profiles

See also
  Path Names

Version
  Oyranos: 0.9.6

Date
  2015/02/08

Since
  2015/02/08 (Oyranos: 0.9.6)

## ◆ oyProfileSignatureDescription()

const char* oyProfileSignatureDescription | ( | oySIGNATURE_TYPE_e | type | ) |

provide UI description for oySIGNATURE_TYPE_e

Function oyProfileSignatureDescription

Version
  Oyranos: 0.9.4

Date
  2013/01/14

Since
  2013/01/14 (Oyranos: 0.9.4)

References oySIGNATURE_CLASS, oySIGNATURE_CMM, oySIGNATURE_COLOR_SPACE, oySIGNATURE_CREATOR, oySIGNATURE_DATETIME_DAY, oySIGNATURE_DATETIME_HOURS, oySIGNATURE_DATETIME_MINUTES, oySIGNATURE_DATETIME_MONTH, oySIGNATURE_DATETIME_SECONDS, oySIGNATURE_DATETIME_YEAR, oySIGNATURE_ILLUMINANT, oySIGNATURE_INTENT, oySIGNATURE_MAGIC, oySIGNATURE_MANUFACTURER, oySIGNATURE_MODEL, oySIGNATURE_OPTIONS, oySIGNATURE_PCS, oySIGNATURE_PLATFORM, oySIGNATURE_SIZE, and oySIGNATURE_VERSION.

## ◆ oyProfileSignatureName()

const char* oyProfileSignatureName | ( | oySIGNATURE_TYPE_e | type | ) |

provide UI name for oySIGNATURE_TYPE_e

Function oyProfileSignatureName

Version
  Oyranos: 0.9.4

Date
  2013/01/14

Since
  2013/01/14 (Oyranos: 0.9.4)

References oySIGNATURE_CLASS, oySIGNATURE_CMM, oySIGNATURE_COLOR_SPACE, oySIGNATURE_CREATOR, oySIGNATURE_DATETIME_DAY, oySIGNATURE_DATETIME_HOURS, oySIGNATURE_DATETIME_MINUTES, oySIGNATURE_DATETIME_MONTH, oySIGNATURE_DATETIME_SECONDS, oySIGNATURE_DATETIME_YEAR, oySIGNATURE_ILLUMINANT, oySIGNATURE_INTENT, oySIGNATURE_MAGIC, oySIGNATURE_MANUFACTURER, oySIGNATURE_MODEL, oySIGNATURE_OPTIONS, oySIGNATURE_PCS, oySIGNATURE_PLATFORM, oySIGNATURE_SIZE, and oySIGNATURE_VERSION.