## CdTransform

CdTransform — An ICC transform

## Functions

GQuark | cd_transform_error_quark ()
CdTransform * | cd_transform_new ()
void | cd_transform_set_input_icc ()
void | cd_transform_set_input_pixel_format ()
CdIcc * | cd_transform_get_input_icc ()
CdPixelFormat | cd_transform_get_input_pixel_format ()
void | cd_transform_set_output_icc ()
void | cd_transform_set_output_pixel_format ()
CdIcc * | cd_transform_get_output_icc ()
CdPixelFormat | cd_transform_get_output_pixel_format ()
void | cd_transform_set_abstract_icc ()
CdIcc * | cd_transform_get_abstract_icc ()
void | cd_transform_set_rendering_intent ()
CdRenderingIntent | cd_transform_get_rendering_intent ()
void | cd_transform_set_bpc ()
gboolean | cd_transform_get_bpc ()
void | cd_transform_set_max_threads ()
guint | cd_transform_get_max_threads ()
gboolean | cd_transform_process ()

## Types and Values

#define | CD_TRANSFORM_ERROR
#define | CD_TRANSFORM_TYPE_ERROR
#define | CD_TYPE_TRANSFORM
enum | CdTransformError
struct | CdTransformClass
| CdTransform

## Description

This object is a simple ICC transform that allows mapping of simple RGB spaces to other simple RGB spaces using one, two or three ICC profiles.

This object is not supposed to re-implement LCMS, and if you need anything more complicated then you are better off using lcms2 directly.

## Functions

### cd_transform_error_quark ()

    GQuark
    cd_transform_error_quark (void);

#### Returns

An error quark.

Since: 0.1.34

### cd_transform_new ()

    CdTransform *
    cd_transform_new (void);

Creates a new CdTransform object.

#### Returns

a new CdTransform object.

Since: 0.1.34

### cd_transform_set_input_icc ()

    void
    cd_transform_set_input_icc (CdTransform *transform,
                                CdIcc *icc);

Sets the input profile to use for the transform.

#### Parameters

transform | a CdTransform instance. |
icc | a CdIcc instance or `NULL`. |

Since: 1.0.0

### cd_transform_set_input_pixel_format ()

    void
    cd_transform_set_input_pixel_format (CdTransform *transform,
                                         CdPixelFormat pixel_format);

Sets the pixel format to use for the transform.

#### Parameters

transform | a CdTransform instance. |
pixel_format | The pixel format, e.g. `CD_PIXEL_FORMAT_RGBA_8` |

Since: 1.0.0

### cd_transform_get_input_icc ()

    CdIcc *
    cd_transform_get_input_icc (CdTransform *transform);

Gets the input profile to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

The input profile.

[transfer none]

Since: 1.0.0

### cd_transform_get_input_pixel_format ()

    CdPixelFormat
    cd_transform_get_input_pixel_format (CdTransform *transform);

Gets the pixel format to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

the pixel format, e.g. `CD_PIXEL_FORMAT_RGBA_8`

Since: 1.0.0

### cd_transform_set_output_icc ()

    void
    cd_transform_set_output_icc (CdTransform *transform,
                                 CdIcc *icc);

Sets the output profile to use for the transform.

#### Parameters

transform | a CdTransform instance. |
icc | a CdIcc instance or `NULL`. |

Since: 1.0.0

### cd_transform_set_output_pixel_format ()

    void
    cd_transform_set_output_pixel_format (CdTransform *transform,
                                          CdPixelFormat pixel_format);

Sets the pixel format to use for the transform.

#### Parameters

transform | a CdTransform instance. |
pixel_format | The pixel format, e.g. `CD_PIXEL_FORMAT_RGBA_8` |

Since: 1.0.0

### cd_transform_get_output_icc ()

    CdIcc *
    cd_transform_get_output_icc (CdTransform *transform);

Gets the input profile to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

The output profile.

[transfer none]

Since: 1.0.0

### cd_transform_get_output_pixel_format ()

    CdPixelFormat
    cd_transform_get_output_pixel_format (CdTransform *transform);

Gets the pixel format to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

the pixel format, e.g. `CD_PIXEL_FORMAT_RGBA_8`

Since: 1.0.0

### cd_transform_set_abstract_icc ()

    void
    cd_transform_set_abstract_icc (CdTransform *transform,
                                   CdIcc *icc);

Sets the abstract profile to use for the transform. This is typically only needed for soft-proofing.

#### Parameters

transform | a CdTransform instance. |
icc | a CdIcc instance or `NULL`. |

Since: 1.0.0

### cd_transform_get_abstract_icc ()

    CdIcc *
    cd_transform_get_abstract_icc (CdTransform *transform);

Gets the abstract profile to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

The abstract profile.

[transfer none]

Since: 1.0.0

### cd_transform_set_rendering_intent ()

    void
    cd_transform_set_rendering_intent (CdTransform *transform,
                                       CdRenderingIntent rendering_intent);

Sets the rendering intent to use for the transform.

#### Parameters

transform | a CdTransform instance. |
rendering_intent | the rendering intent, e.g. `CD_RENDERING_INTENT_PERCEPTUAL` |

Since: 1.0.0

### cd_transform_get_rendering_intent ()

    CdRenderingIntent
    cd_transform_get_rendering_intent (CdTransform *transform);

Gets the rendering intent to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

The rendering intent, e.g. `CD_RENDERING_INTENT_PERCEPTUAL`

Since: 1.0.0

### cd_transform_set_bpc ()

    void
    cd_transform_set_bpc (CdTransform *transform,
                          gboolean bpc);

Sets if black point compensation should be used for the transform.

#### Parameters

transform | a CdTransform instance. |
bpc | black point compensation |

Since: 1.0.0

### cd_transform_get_bpc ()

    gboolean
    cd_transform_get_bpc (CdTransform *transform);

Gets the rendering bpc to use for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

If black point compensation should be used for the transform.

Since: 1.0.0

### cd_transform_set_max_threads ()

    void
    cd_transform_set_max_threads (CdTransform *transform,
                                  guint max_threads);

Sets the maximum number of threads to be used for the transform.

#### Parameters

transform | a CdTransform instance. |
max_threads | number of threads, or 0 for the number of cores on the CPU |

Since: 1.1.1

### cd_transform_get_max_threads ()

    guint
    cd_transform_get_max_threads (CdTransform *transform);

Gets the maximum number of threads to be used for the transform.

#### Parameters

transform | a CdTransform instance. |

#### Returns

number of threads

Since: 1.1.1

### cd_transform_process ()

    gboolean
    cd_transform_process (CdTransform *transform,
                          gpointer data_in,
                          gpointer data_out,
                          guint width,
                          guint height,
                          guint rowstride,
                          GCancellable *cancellable,
                          GError **error);

Processes a block of data through the transform. Once the transform has been setup it is cached and only re-created if any of the formats, input, output or abstract profiles are changed.

#### Parameters

transform | a CdTransform instance. |
data_in | the data buffer to convert |
data_out | the data buffer to return, which can be the same as `data_in` |
width | the width of `data_in` |
height | the height of `data_in` |
rowstride | the rowstride of `data_in` , typically the same as `width` |
cancellable | A `GError`, or `NULL` |
error | A `GCancellable`, or `NULL` |

#### Returns

`TRUE` if the pixels were successfully transformed.

Since: 0.1.34

## Types and Values

### CD_TRANSFORM_ERROR

    #define CD_TRANSFORM_ERROR		(cd_transform_error_quark ())

### CD_TRANSFORM_TYPE_ERROR

    #define CD_TRANSFORM_TYPE_ERROR		(cd_transform_error_get_type ())

### CD_TYPE_TRANSFORM

    #define CD_TYPE_TRANSFORM (cd_transform_get_type ())

### enum CdTransformError

The transform error code.

#### Members

CD_TRANSFORM_ERROR_FAILED_TO_SETUP_TRANSFORM | Failed to setup transform |
CD_TRANSFORM_ERROR_INVALID_COLORSPACE | Invalid colorspace |
CD_TRANSFORM_ERROR_LAST |  |

Since: 0.1.34

### struct CdTransformClass

    struct CdTransformClass {
    	GObjectClass		 parent_class;
    };

### CdTransform

    typedef struct _CdTransform CdTransform;