Oyranos  git-devel
Oyranos is a full featured Color Management System
Modules | Data Structures | Macros | Enumerations | Functions
ICC Profile APIs

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_NO_LOAD   0x100
 
#define OY_SKIP_MTIME_CHECK   0x200
 
#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...
 
enum  oyERROR_e { oyERROR_USER = 10, oyERROR_DATA_READ, oyERROR_DATA_WRITE, oyERROR_DATA_AMBIGUITY }
 Common errors. 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:

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_LOAD

#define OY_NO_LOAD   0x100

do not load profile, create fragment

◆ OY_NO_REPAIR

#define OY_NO_REPAIR   0x80

do not try to repair or fix profiles

◆ OY_SKIP_MTIME_CHECK

#define OY_SKIP_MTIME_CHECK   0x200

ignore checking time stamp; old bahaviour for faster caching

◆ OY_SKIP_NON_DEFAULT_PATH

#define OY_SKIP_NON_DEFAULT_PATH   0x40

ignore profiles outside of default paths

Enumeration Type Documentation

◆ oyERROR_e

enum oyERROR_e

Common errors.

Enumerator
oyERROR_USER 

wrong or missing argument

oyERROR_DATA_READ 

input error

oyERROR_DATA_WRITE 

output error

oyERROR_DATA_AMBIGUITY 

uniqueness of data is conflicted

◆ 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_COLOR_SPACE.

◆ 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_COLOR_SPACE.