package camlimages

  1. Overview
  2. Docs

Definition of colormaps, i.e. mappings from real RGB colors to integers. The integer corresponding to a color c is an index i into a vector of colors whose ith element is c.

exception Too_many_colors

An exception raised when too many number of colors are used for a given color model.

type 'a map = {
  1. mutable max : int;
  2. mutable map : 'a array;
}

Colormap

Colormap manipulation functions

val size : 'a map -> int

Returns the size of a colormap.

val find_exact : 'a map -> 'a -> int

Finds a color in the colormap and returns its color index. Raises exception Not_found if the color is not in the colormap.

val add_color : 'a map -> 'a -> int

Add a new color into the given colormap and return its index. If the color is already in the colormap, it is not added again, and the corresponding color index is returned.

val add_colors : 'a map -> 'a list -> int list

Add the list of new colors into the given colormap and return their indices. If a color is already in the colormap, it is not added again, and the corresponding color index is returned.

val copy : 'a map -> 'a map

Copy a colormap

module type S = sig ... end
type rgb = {
  1. mutable r : int;
  2. mutable g : int;
  3. mutable b : int;
}

R(ed), G(reen), B(lue) representation of colors.

module Rgb : S with type t = rgb

Colormap for RGB

type rgba = {
  1. color : rgb;
  2. mutable alpha : int;
}

RGB with alpha (transparent) information

module Rgba : sig ... end

Colormap for RGBA

type cmyk = {
  1. mutable c : int;
  2. mutable m : int;
  3. mutable y : int;
  4. mutable k : int;
}

Cyan Magenta Yellow blacK color model

module Cmyk : S with type t = cmyk

Colormap for CMYK

Rgb specialized functions (for backward compatibility)

val rgb_square_distance : rgb -> rgb -> int

Compute the distance between two colours.

val plus : rgb -> rgb -> rgb
val minus : rgb -> rgb -> rgb
val brightness : rgb -> int

Color name parser

val color_parse : string -> rgb

Color name parser function.

It queries the name in the color name database given by the file Camlimages.path_rgb_txt. It also understands the following color format:

"#rrggbb" where r,g and b are 0-9a-fA-F "#rrrrggggbbbb" where r,g and b are 0-9a-fA-F

It may raise Failure if not found.

val colormap_parse : string array -> rgb array * int

Same as color_parse but work for multiple names.

If a color of the result has a minus value for its R component, it is considered transparent and replaced by r=0 g=255 b=0. The function returns the last transparent color index.

val r3g3b2 : rgb map

256 color map using 3 bits for red, 3 bits for green and 2 bits for blue