Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
INV_CMAP(3)		   Library Functions Manual		   INV_CMAP(3)

NAME
       inv_cmap	- efficiently compute an inverse colormap

SYNOPSIS
       void inv_cmap( colors, colormap,	bits, dist_buf,	rgbmap )

       int colors, bits;
       unsigned	char *colormap[3], *rgbmap;
       unsigned	long *dist_buf;

DESCRIPTION
       Inv_cmap	 computes an inverse colormap to translate an RGB color	to the
       nearest color in	the given colormap.  The arguments are

       colors The number of colors in the input	colormap.  Must	be  256.

       colormap
	      The input	colormap.  The	ith  color  is	(Colormap[0][i],  Col-
	      ormap[1][i], Colormap[2][i]).

       bits   Controls	the  size  and precision of the	inverse	colormap.  The
	      resulting	colormap will be a cube	2^bits on  a  side,  and  will
	      therefore	 contain 2^(3*bits) entries.  RGB colors must be quan-
	      tized to bits bits before	using the inverse colormap.

       dist_buf
	      Temporary	storage	used by	inv_cmap.  It should contain at	 least
	      2^(3*bits) elements.

       rgbmap The  inverse  colormap.	Should	be  allocated  with  at	 least
	      2^(3*bits) elements.   After  calling  inv_cmap,	an  RGB	 color
	      (r,g,b)  can be mapped to	its closest representative in colormap
	      by evaluating
	      #define quantize(p) ((p)>>(8-bits))
	      rgbmap[ (((quantize(r) <<	bits) |	quantize(g)) <<	bits) |	 quan-
	      tize(b) ]

       Predicted  performance is O(2^(3*bits)*log(colors)).  The measured per-
       formance	is sublinear (but not as good as log) in the number  of	 input
       colors  and  also in the	size of	the output inverse colormap. (I.e., it
       goes up more slowly than	2^(3*bits).)

SEE ALSO
       colorquant(3).

AUTHOR
       Spencer W. Thomas

4th Berkeley Distribution	Month DD, YYYY			   INV_CMAP(3)

NAME | SYNOPSIS | DESCRIPTION | SEE ALSO | AUTHOR

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=inv_cmap&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help