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