GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
BUILDMAP(3) FreeBSD Library Functions Manual BUILDMAP(3)

buildmap - create a color map array from an RLE file header.

#include <rle.h>

rle_pixel ** buildmap( the_hdr, minmap, orig_gamma, new_gamma )

rle_hdr * the_hdr;
int minmap;
double orig_gamma, new_gamma;

The color map in the rle_hdr(3) structure is not in the most easily used form. The function buildmap returns a pointer to a colormap array with certain minimum dimensions, making it a little easier to implement color mapping in a program. The color map from first argument, the_hdr, is used to build the result. If no map is present in the_hdr, then an identity map of the minimum size will be returned.

The returned color map will have at least minmap rows or channels, each of which is at least 256 entries long (so that indexing into the color map with an 8 bit rle_pixel value will always succeed.)

The color map from the_hdr will be composed with a gamma compensation curve to account for the gamma of the display for which the input color map was presumably computed. The argument orig_gamma specifies the gamma of the compensation curve. It would typically be the gamma of the original display.

If gamma is 0, then if a picture comment image_gamma=i_gamma is present, gamma will be set to 1.0/i_gamma. Otherwise, if a comment display_gamma=d_gamma is present, gamma will be set to d_gamma. The gamma compensation value for pixel i is 255*(i/255)^gamma.

If this color map will be used directly for another display, the gamma of this new display should be passed in new_gamma.

The returned value is a pointer to an array of pointers to arrays of rle_pixel values. It may be doubly indexed in C code, so that if cmap is the return value, the RGB color mapping for a pixel pixval is (cmap[0][pixval], cmap[1][pixval], cmap[2][pixval]).

Generally, unless the user explicitly specifies the image or original display gamma (e.g., as with the -i or -I flags of getx11(1), you should pass 0 for orig_gamma. This lets buildmap use the value from the_hdr, if it is present.

If you are going to use the result of buildmap to generate values to be dithered, new_gamma should always be 1.0, and the display gamma (-g in getx11) should be passed to dithermap(3). If you are not planning to dither, then pass the user supplied display gamma as new_gamma.

The color map storage allocated by buildmap can be released by calling free( map[0] ).

dithermap(3), rle_hdr(3), librle(3), RLE(5).

Spencer W. Thomas, University of Utah

3/6/85 4th Berkeley Distribution

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.