Query: ascmap
OS: debian
Section: 3x
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
ascmap(3x) AfterStep X11 window manager ascmap(3x)NAMEascmap - defines main structures and function for image quantization libAfterImage/ascmap.h NAMEascmap - Defines main structures and function for image quantization.DESCRIPTIONImage quantization is needed primarily in order to be able to export images into file, with colormap format, such as GIF and XPM. libAfterImage attempts to allocate colorcells to the most used colors, and then approximate remaining colors with the closest colorcell. Since quality of quantization is in reverse proportion to the number of colors in original image, libAfterImage allows one to set arbitrary level of downsampling of the color spectrum in the range of 8 bit per channel to 1 bit per channel. Downsampling is performed by simple dropping of less significant bits off of color values. In order to be able to determine closeness of colors, 3-channel RGB values are converted into flat 24bit (or less if downsampling is used) index. That is done by intermixing bits from different channels, like so : R8G8B8R7G7B7...R1G1B1. That flat index is used to arrange colors in ascending order, and later on to be able to find closest mapped color. Simple hashing technique is used to speed up the sorting/searching, as it allows one to limit linked lists traversals.SEE ALSOStructures : ASColormapEntry ASColormap Functions : colormap_asimage(), destroy_colormap() Other libAfterImage modules : ascmap.h asfont.h asimage.h asvisual.h blender.h export.h import.h transform.h ximage.hAUTHORSasha Vasko <sasha at aftercode dot net> libAfterImage/ASColormapEntry NAMEASColormapEntry - ASColormapEntry represents single colorcell in the colormap.SOURCEtypedef struct ASColormapEntry { CARD8 red, green, blue; }ASColormapEntry; libAfterImage/ASColormap NAMEASColormap - ASColormap represents entire colormap generated for the image.SOURCEtypedef struct ASColormap { ASColormapEntry *entries ; /* array of colorcells */ unsigned int count ; /* number of used colorcells */ ASSortedColorHash *hash ; /* internal data */ Bool has_opaque ; /* If True then Image has opaque pixels */ }ASColormap; libAfterImage/colormap_asimage() NAMEcolormap_asimage()SYNOPSISint *colormap_asimage( ASImage *im, ASColormap *cmap, unsigned int max_colors, unsigned int dither, int opaque_threshold );INPUTSim - pointer to valid ASImage structure. cmap - preallocated structure to store colormap in. max_colors - maximum size of the colormap. dither - number of bits to strip off the color data ( 0...7 ) opaque_threshold - alpha channel threshold at which pixel should be treated as opaqueRETURN VALUEpointer to the array of indexes representing pixel's colorcells. This array has size of WIDTHxHEIGHT where WIDTH and HEIGHT are size of the source image.DESCRIPTIONThis function is all that is needed to quantize the ASImage. In order to obtain colorcell of the pixel at (x,y) from result, the following code could be used : cmap->entries[res[y*width+x]] where res is returned pointer. Recommended value for dither parameter is 4 while quantizing photos to 256 colors, and it could be less , if original has limited number of colors. libAfterImage/destroy_colormap() NAMEdestroy_colormap()SYNOPSISvoid destroy_colormap( ASColormap *cmap, Bool reusable );INPUTScmap - pointer to valid ASColormap structure. reusable - if True, then the memory pointed to by cmap will not be deallocated, as if it was allocated on stackDESCRIPTIONDestroys ASColormap object created using colormap_asimage. 3rd Berkeley Distribution AfterStep v.2.2.11 ascmap(3x)
Related Man Pages |
---|
asfont(3x) - debian |
astile(3x) - debian |
asvisual(3x) - debian |
imencdec(3x) - debian |
xallocnamedcolor(3) - hpux |
Similar Topics in the Unix Linux Community |
---|
libAfterImage 1.18 (Default branch) |