im_palette.h
Go to the documentation of this file.00001 /** \file
00002 * \brief Palette Generators
00003 *
00004 * See Copyright Notice in im_lib.h
00005 * $Id: im_palette.h,v 1.5 2006/11/21 11:56:16 scuri Exp $
00006 */
00007
00008 #ifndef __IM_PALETTE_H
00009 #define __IM_PALETTE_H
00010
00011 #if defined(__cplusplus)
00012 extern "C" {
00013 #endif
00014
00015
00016 /** \defgroup palette Palette Generators
00017 * \par
00018 * Creates several standard palettes. The palette is just an array of encoded color values.
00019 * See also \ref colorutl.
00020 * \par
00021 * In Lua, to create a palette you can call im.PaletteCreate.
00022 * \verbatim im.PaletteCreate([count: number]) -> pal: imPalette [in Lua 5] \endverbatim
00023 * Default count is 256.
00024 * IMLua and CDLua palettes are 100% compatible.
00025 * \par
00026 * See \ref im_palette.h
00027 * \ingroup util */
00028
00029
00030 /** Searches for the nearest color on the table and returns the color index if successful.
00031 * It looks in all palette entries and finds the minimum euclidian square distance.
00032 * If the color matches the given color it returns immediately.
00033 * See also \ref colorutl.
00034 *
00035 * \verbatim im.PaletteFindNearest(pal: imPalette, color: lightuserdata) -> index: number [in Lua 5] \endverbatim
00036 * \ingroup palette */
00037 int imPaletteFindNearest(const long *palette, int palette_count, long color);
00038
00039 /** Searches for the color on the table and returns the color index if successful.
00040 * If the tolerance is 0 search for the exact match in the palette else search for the
00041 * first color that fits in the tolerance range.
00042 * See also \ref colorutl.
00043 *
00044 * \verbatim im.PaletteFindColor(pal: imPalette, color: lightuserdata, tol: number) -> index: number [in Lua 5] \endverbatim
00045 * \ingroup palette */
00046 int imPaletteFindColor(const long *palette, int palette_count, long color, unsigned char tol);
00047
00048 /** Creates a palette of gray scale values.
00049 * The colors are arranged from black to white.
00050 *
00051 * \verbatim im.PaletteGray() -> pal: imPalette [in Lua 5] \endverbatim
00052 * \ingroup palette */
00053 long* imPaletteGray(void);
00054
00055 /** Creates a palette of a gradient of red colors.
00056 * The colors are arranged from black to pure red.
00057 *
00058 * \verbatim im.PaletteRed() -> pal: imPalette [in Lua 5] \endverbatim
00059 * \ingroup palette */
00060 long* imPaletteRed(void);
00061
00062 /** Creates a palette of a gradient of green colors.
00063 * The colors are arranged from black to pure green.
00064 *
00065 * \verbatim im.PaletteGreen() -> pal: imPalette [in Lua 5] \endverbatim
00066 * \ingroup palette */
00067 long* imPaletteGreen(void);
00068
00069 /** Creates a palette of a gradient of blue colors.
00070 * The colors are arranged from black to pure blue.
00071 *
00072 * \verbatim im.PaletteBlue() -> pal: imPalette [in Lua 5] \endverbatim
00073 * \ingroup palette */
00074 long* imPaletteBlue(void);
00075
00076 /** Creates a palette of a gradient of yellow colors.
00077 * The colors are arranged from black to pure yellow.
00078 *
00079 * \verbatim im.PaletteYellow() -> pal: imPalette [in Lua 5] \endverbatim
00080 * \ingroup palette */
00081 long* imPaletteYellow(void);
00082
00083 /** Creates a palette of a gradient of magenta colors.
00084 * The colors are arranged from black to pure magenta.
00085 *
00086 * \verbatim im.PaletteMagenta() -> pal: imPalette [in Lua 5] \endverbatim
00087 * \ingroup palette */
00088 long* imPaletteMagenta(void);
00089
00090 /** Creates a palette of a gradient of cian colors.
00091 * The colors are arranged from black to pure cian.
00092 *
00093 * \verbatim im.PaletteCian() -> pal: imPalette [in Lua 5] \endverbatim
00094 * \ingroup palette */
00095 long* imPaletteCian(void);
00096
00097 /** Creates a palette of rainbow colors.
00098 * The colors are arranged in the light wave length spectrum order (starting from purple).
00099 *
00100 * \verbatim im.PaletteRainbow() -> pal: imPalette [in Lua 5] \endverbatim
00101 * \ingroup palette */
00102 long* imPaletteRainbow(void);
00103
00104 /** Creates a palette of hues with maximum saturation.
00105 *
00106 * \verbatim im.PaletteHues() -> pal: imPalette [in Lua 5] \endverbatim
00107 * \ingroup palette */
00108 long* imPaletteHues(void);
00109
00110 /** Creates a palette of a gradient of blue colors.
00111 * The colors are arranged from pure blue to white.
00112 *
00113 * \verbatim im.PaletteBlueIce() -> pal: imPalette [in Lua 5] \endverbatim
00114 * \ingroup palette */
00115 long* imPaletteBlueIce(void);
00116
00117 /** Creates a palette of a gradient from black to white passing trough red and orange.
00118 *
00119 * \verbatim im.PaletteHotIron() -> pal: imPalette [in Lua 5] \endverbatim
00120 * \ingroup palette */
00121 long* imPaletteHotIron(void);
00122
00123 /** Creates a palette of a gradient from black to white passing trough red and yellow.
00124 *
00125 * \verbatim im.PaletteBlackBody() -> pal: imPalette [in Lua 5] \endverbatim
00126 * \ingroup palette */
00127 long* imPaletteBlackBody(void);
00128
00129 /** Creates a palette with high contrast colors.
00130 *
00131 * \verbatim im.PaletteHighContrast() -> pal: imPalette [in Lua 5] \endverbatim
00132 * \ingroup palette */
00133 long* imPaletteHighContrast(void);
00134
00135 /** Creates a palette of an uniform range of colors from black to white.
00136 * This is a 2^(2.6) bits per pixel palette.
00137 *
00138 * \verbatim im.PaletteUniform() -> pal: imPalette [in Lua 5] \endverbatim
00139 * \ingroup palette */
00140 long* imPaletteUniform(void);
00141
00142 /** Returns the index of the correspondent RGB color of an uniform palette.
00143 *
00144 * \verbatim im.PaletteUniformIndex(color: lightuserdata) -> index: number [in Lua 5] \endverbatim
00145 * \ingroup palette */
00146 int imPaletteUniformIndex(long color);
00147
00148 /** Returns the index of the correspondent RGB color of an uniform palette.
00149 * Uses an 8x8 ordered dither to lookup the index in a halftone matrix.
00150 * The spatial position used by the halftone method.
00151 *
00152 * \verbatim im.PaletteUniformIndexHalftoned(color: lightuserdata, x: number, y: number) -> index: number [in Lua 5] \endverbatim
00153 * \ingroup palette */
00154 int imPaletteUniformIndexHalftoned(long color, int x, int y);
00155
00156
00157 #if defined(__cplusplus)
00158 }
00159 #endif
00160
00161 #endif
00162