JasPer: Color Management

JasPer 3.0.6 |

Classes | Macros | Typedefs | Enumerations | Functions
Color Management

Color Management. More...

## Classes
struct | jas_cmcmptfmt_t
| Component format. More...
struct | jas_cmpixmap_t
| Pixmap (i.e., multicomponent) format. More...
struct | jas_cmpxformops_t
| Transform operations. More...
struct | jas_cmshapmatlut_t
| Shaper matrix look-up table (LUT). More...
struct | jas_cmshapmat_t
| Shaper matrix. More...
struct | jas_cmshaplut_t
| Shaper look-up table (LUT). More...
struct | jas_cmclrspcconv_t
| Color space conversion. More...
struct | jas_cmpxform_s
| Transform class. More...
struct | jas_cmpxformseq_t
| Primitive transform sequence class. More...
struct | jas_cmxform_t
| Primitive transform class. More...
struct | jas_cmprof_t

## Macros
#define | JAS_CMXFORM_NUMINTENTS 4
| Number of rendering intents. More...
#define | jas_clrspc_create(fam, mbr) (((fam) << 8) | (mbr))
| Create a color space. More...
#define | jas_clrspc_fam(clrspc) ((clrspc) >> 8)
| Get the family of a color space. More...
#define | jas_clrspc_mbr(clrspc) ((clrspc) & 0xff)
| Get the (family) member of a color space. More...
#define | jas_clrspc_isgeneric(clrspc) (!jas_clrspc_mbr(clrspc))
| Test if a color space is generic. More...
#define | jas_clrspc_isunknown(clrspc) ((clrspc) & JAS_CLRSPC_UNKNOWNMASK)
| Test if a color space is unknown. More...
#define | JAS_CLRSPC_FAM_UNKNOWN 0
| Color space families. More...
#define | JAS_CLRSPC_UNKNOWN JAS_CLRSPC_UNKNOWNMASK
| Specific color spaces. More...
#define | JAS_CLRSPC_GENRGB jas_clrspc_create(JAS_CLRSPC_FAM_RGB, 0)
| Generic color spaces. More...
#define | jas_cmprof_clrspc(prof) ((prof)->clrspc)
| Get the color space associated with a color-management profile. More...

## Typedefs
typedef unsigned | jas_clrspc_t
| Color space. More...
typedef double | jas_cmreal_t
typedef struct jas_cmpxform_s | jas_cmpxform_t
| Transform class. More...

## Enumerations
enum | jas_cmxform_op_t
| Transform operations. More...
enum | jas_cmxform_intent_t
| Rendering intents. More...
enum | jas_cmxform_optm_t
| Transform optimization. More...

## Functions
JAS_EXPORT jas_cmprof_t * | jas_cmprof_createfromiccprof (const jas_iccprof_t *iccprof)
| Create a color-management profile from an ICC profile. More...
JAS_EXPORT jas_cmprof_t * | jas_cmprof_createfromclrspc (jas_clrspc_t clrspc)
| Create a color-management profile from a color space. More...
JAS_EXPORT void | jas_cmprof_destroy (jas_cmprof_t *prof)
| Destroy a color-management profile. More...
JAS_EXPORT jas_cmprof_t * | jas_cmprof_copy (const jas_cmprof_t *prof)
| Copy a color-management profile. More...
JAS_EXPORT jas_iccprof_t * | jas_iccprof_createfromcmprof (const jas_cmprof_t *prof)
| Create a ICC profile from a CM profile. More...
JAS_EXPORT jas_cmxform_t * | jas_cmxform_create (const jas_cmprof_t *inprof, const jas_cmprof_t *outprof, const jas_cmprof_t *proofprof, jas_cmxform_op_t op, jas_cmxform_intent_t intent, jas_cmxform_optm_t optimize)
| Create a transform from a CM profile. More...
JAS_EXPORT void | jas_cmxform_destroy (jas_cmxform_t *xform)
| Destroy a transform. More...
JAS_EXPORT int | jas_cmxform_apply (const jas_cmxform_t *xform, const jas_cmpixmap_t *in, jas_cmpixmap_t *out)
| Apply a transform to data. More...
unsigned | jas_clrspc_numchans (jas_clrspc_t clrspc)
| Get the number of channels associated with a particular color space. More...
JAS_EXPORT jas_iccprof_t * | jas_iccprof_load (jas_stream_t *in)
| Read an ICC profile from a stream. More...
JAS_EXPORT int | jas_iccprof_save (jas_iccprof_t *prof, jas_stream_t *out)
| Write an ICC profile to a stream. More...
JAS_EXPORT void | jas_iccprof_destroy (jas_iccprof_t *prof)
| Destroy an ICC profile. More...
JAS_ATTRIBUTE_PURE JAS_EXPORT jas_iccattrval_t * | jas_iccprof_getattr (const jas_iccprof_t *prof, jas_iccattrname_t name)
| Get an attribute of an ICC profile. More...
JAS_EXPORT int | jas_iccprof_setattr (jas_iccprof_t *prof, jas_iccattrname_t name, jas_iccattrval_t *val)
| Set an attribute of an ICC profile. More...
JAS_EXPORT void | jas_iccprof_dump (const jas_iccprof_t *prof, FILE *out)
| Dump an ICC profile to a stream in human-readable format for debugging purposes. More...
JAS_EXPORT jas_iccprof_t * | jas_iccprof_copy (const jas_iccprof_t *prof)
| Create a copy of an ICC profile. More...
JAS_EXPORT int | jas_iccprof_gethdr (const jas_iccprof_t *prof, jas_icchdr_t *hdr)
| Get the header for an ICC profile. More...
JAS_EXPORT int | jas_iccprof_sethdr (jas_iccprof_t *prof, const jas_icchdr_t *hdr)
| Set the header for an ICC profile. More...
JAS_EXPORT void | jas_iccattrval_destroy (jas_iccattrval_t *attrval)
| Destroy an ICC profile attribute. More...
JAS_EXPORT int | jas_iccattrval_allowmodify (jas_iccattrval_t **attrval)
| TODO/FIXME. More...
JAS_EXPORT jas_iccattrval_t * | jas_iccattrval_clone (jas_iccattrval_t *attrval)
| Create a copy of an ICC profile attribute. More...
JAS_EXPORT jas_iccattrval_t * | jas_iccattrval_create (jas_iccuint32_t type)
| Create an ICC profile attribute. More...
JAS_EXPORT void | jas_iccattrtab_dump (const jas_iccattrtab_t *attrtab, FILE *out)
| Dump an ICC profile attribute to a stream in human-readable format for debugging purposes. More...
JAS_EXPORT jas_iccprof_t * | jas_iccprof_createfrombuf (const jas_uchar *buf, unsigned len)
| Create an ICC profile from a buffer in memory. More...
JAS_EXPORT jas_iccprof_t * | jas_iccprof_createfromclrspc (unsigned clrspc)
| Create an ICC profile from a color space. More...

## Detailed Description

Color Management.

General information can be found here.

## Macro Definition Documentation

## ◆ jas_clrspc_create

#define jas_clrspc_create | ( |  | fam,
|  |  | mbr
| ) |  | (((fam) << 8) | (mbr))

Create a color space.

## ◆ jas_clrspc_fam

#define jas_clrspc_fam | ( |  | clrspc | ) | ((clrspc) >> 8)

Get the family of a color space.

## ◆ JAS_CLRSPC_FAM_UNKNOWN

#define JAS_CLRSPC_FAM_UNKNOWN 0

Color space families.

## ◆ JAS_CLRSPC_GENRGB

#define JAS_CLRSPC_GENRGB jas_clrspc_create(JAS_CLRSPC_FAM_RGB, 0)

Generic color spaces.

## ◆ jas_clrspc_isgeneric

#define jas_clrspc_isgeneric | ( |  | clrspc | ) | (!jas_clrspc_mbr(clrspc))

Test if a color space is generic.

## ◆ jas_clrspc_isunknown

#define jas_clrspc_isunknown | ( |  | clrspc | ) | ((clrspc) & JAS_CLRSPC_UNKNOWNMASK)

Test if a color space is unknown.

## ◆ jas_clrspc_mbr

#define jas_clrspc_mbr | ( |  | clrspc | ) | ((clrspc) & 0xff)

Get the (family) member of a color space.

## ◆ JAS_CLRSPC_UNKNOWN

#define JAS_CLRSPC_UNKNOWN JAS_CLRSPC_UNKNOWNMASK

Specific color spaces.

## ◆ jas_cmprof_clrspc

#define jas_cmprof_clrspc | ( |  | prof | ) | ((prof)->clrspc)

Get the color space associated with a color-management profile.

Returns

## ◆ JAS_CMXFORM_NUMINTENTS

#define JAS_CMXFORM_NUMINTENTS 4

Number of rendering intents.

## Typedef Documentation

## ◆ jas_clrspc_t

typedef unsigned jas_clrspc_t

Color space.

## ◆ jas_cmpxform_t

typedef struct jas_cmpxform_s jas_cmpxform_t

Transform class.

## ◆ jas_cmreal_t

typedef double jas_cmreal_t

Real-number type.

## Enumeration Type Documentation

## ◆ jas_cmxform_intent_t

enum jas_cmxform_intent_t

Rendering intents.

## ◆ jas_cmxform_op_t

enum jas_cmxform_op_t

Transform operations.

## ◆ jas_cmxform_optm_t

enum jas_cmxform_optm_t

Transform optimization.

## Function Documentation

## ◆ jas_clrspc_numchans()

unsigned jas_clrspc_numchans | ( | jas_clrspc_t | clrspc | ) |

Get the number of channels associated with a particular color space.

Returns

## ◆ jas_cmprof_copy()

JAS_EXPORT jas_cmprof_t * jas_cmprof_copy | ( | const jas_cmprof_t * | prof | ) |

Copy a color-management profile.

This function creates a clone (i.e., copy) of a CM profile.

Returns
  If successful, a pointer to the newly created CM profile is returned. Otherwise, a null pointer is returned.

## ◆ jas_cmprof_createfromclrspc()

JAS_EXPORT jas_cmprof_t * jas_cmprof_createfromclrspc | ( | jas_clrspc_t | clrspc | ) |

Create a color-management profile from a color space.

The function creates a CM profile from a color space.

Returns
  If successful, a pointer to the created CM profile is returned. Otherwise, a null pointer is returned.

## ◆ jas_cmprof_createfromiccprof()

JAS_EXPORT jas_cmprof_t * jas_cmprof_createfromiccprof | ( | const jas_iccprof_t * | iccprof | ) |

Create a color-management profile from an ICC profile.

This function creates a CM profile from an ICC profile.

Returns
  If successful, a pointer to the created CM profile is returned. Otherwise, a null pointer is returned.

## ◆ jas_cmprof_destroy()

JAS_EXPORT void jas_cmprof_destroy | ( | jas_cmprof_t * | prof | ) |

Destroy a color-management profile.

## ◆ jas_cmxform_apply()

JAS_EXPORT int jas_cmxform_apply | ( | const jas_cmxform_t * | xform,
|  | const jas_cmpixmap_t * | in,
|  | jas_cmpixmap_t * | out
| ) |  |

Apply a transform to data.

Returns
  If successful, zero is returned. Otherwise, a nonzero value is returned.

## ◆ jas_cmxform_create()

JAS_EXPORT jas_cmxform_t * jas_cmxform_create | ( | const jas_cmprof_t * | inprof,
|  | const jas_cmprof_t * | outprof,
|  | const jas_cmprof_t * | proofprof,
|  | jas_cmxform_op_t | op,
|  | jas_cmxform_intent_t | intent,
|  | jas_cmxform_optm_t | optimize
| ) |  |

Create a transform from a CM profile.

Returns
  If successful, a pointer to the created transform is returned. Otherwise, a null pointer is returned.

## ◆ jas_cmxform_destroy()

JAS_EXPORT void jas_cmxform_destroy | ( | jas_cmxform_t * | xform | ) |

Destroy a transform.

## ◆ jas_iccattrtab_dump()

JAS_EXPORT void jas_iccattrtab_dump | ( | const jas_iccattrtab_t * | attrtab,
|  | FILE * | out
| ) |  |

Dump an ICC profile attribute to a stream in human-readable format for debugging purposes.

## ◆ jas_iccattrval_allowmodify()

JAS_EXPORT int jas_iccattrval_allowmodify | ( | jas_iccattrval_t ** | attrval | ) |

TODO/FIXME.

## ◆ jas_iccattrval_clone()

JAS_EXPORT jas_iccattrval_t * jas_iccattrval_clone | ( | jas_iccattrval_t * | attrval | ) |

Create a copy of an ICC profile attribute.

## ◆ jas_iccattrval_create()

JAS_EXPORT jas_iccattrval_t * jas_iccattrval_create | ( | jas_iccuint32_t | type | ) |

Create an ICC profile attribute.

## ◆ jas_iccattrval_destroy()

JAS_EXPORT void jas_iccattrval_destroy | ( | jas_iccattrval_t * | attrval | ) |

Destroy an ICC profile attribute.

## ◆ jas_iccprof_copy()

JAS_EXPORT jas_iccprof_t * jas_iccprof_copy | ( | const jas_iccprof_t * | prof | ) |

Create a copy of an ICC profile.

## ◆ jas_iccprof_createfrombuf()

JAS_EXPORT jas_iccprof_t * jas_iccprof_createfrombuf | ( | const jas_uchar * | buf,
|  | unsigned | len
| ) |  |

Create an ICC profile from a buffer in memory.

## ◆ jas_iccprof_createfromclrspc()

JAS_EXPORT jas_iccprof_t * jas_iccprof_createfromclrspc | ( | unsigned | clrspc | ) |

Create an ICC profile from a color space.

## ◆ jas_iccprof_createfromcmprof()

JAS_EXPORT jas_iccprof_t * jas_iccprof_createfromcmprof | ( | const jas_cmprof_t * | prof | ) |

Create a ICC profile from a CM profile.

This function creates an ICC profile from a CM profile.

Returns
  If successful, a pointer to the created ICC profile is returned. Otherwise, a null pointer is returned.

## ◆ jas_iccprof_destroy()

JAS_EXPORT void jas_iccprof_destroy | ( | jas_iccprof_t * | prof | ) |

Destroy an ICC profile.

## ◆ jas_iccprof_dump()

JAS_EXPORT void jas_iccprof_dump | ( | const jas_iccprof_t * | prof,
|  | FILE * | out
| ) |  |

Dump an ICC profile to a stream in human-readable format for debugging purposes.

## ◆ jas_iccprof_getattr()

JAS_ATTRIBUTE_PURE JAS_EXPORT jas_iccattrval_t * jas_iccprof_getattr | ( | const jas_iccprof_t * | prof,
|  | jas_iccattrname_t | name
| ) |  |

Get an attribute of an ICC profile.

## ◆ jas_iccprof_gethdr()

JAS_EXPORT int jas_iccprof_gethdr | ( | const jas_iccprof_t * | prof,
|  | jas_icchdr_t * | hdr
| ) |  |

Get the header for an ICC profile.

## ◆ jas_iccprof_load()

JAS_EXPORT jas_iccprof_t * jas_iccprof_load | ( | jas_stream_t * | in | ) |

Read an ICC profile from a stream.

## ◆ jas_iccprof_save()

JAS_EXPORT int jas_iccprof_save | ( | jas_iccprof_t * | prof,
|  | jas_stream_t * | out
| ) |  |

Write an ICC profile to a stream.

## ◆ jas_iccprof_setattr()

JAS_EXPORT int jas_iccprof_setattr | ( | jas_iccprof_t * | prof,
|  | jas_iccattrname_t | name,
|  | jas_iccattrval_t * | val
| ) |  |

Set an attribute of an ICC profile.

## ◆ jas_iccprof_sethdr()

JAS_EXPORT int jas_iccprof_sethdr | ( | jas_iccprof_t * | prof,
|  | const jas_icchdr_t * | hdr
| ) |  |

Set the header for an ICC profile.