gecko-dev/lib/libcnv/ppmcmap.h

57 строки
1.8 KiB
C

/* ppm.h -
**
** Header File
**
** Copyright (C) 1989, 1991 by Jef Poskanzer.
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for any purpose and without fee is hereby granted, provided
** that the above copyright notice appear in all copies and that both that
** copyright notice and this permission notice appear in supporting
** documentation. This software is provided "as is" without express or
** implied warranty.
*/
/* Color histogram stuff. */
typedef struct colorhist_item* colorhist_vector;
struct colorhist_item
{
pixel color;
int16 value;
};
typedef struct colorhist_list_item* colorhist_list;
struct colorhist_list_item
{
struct colorhist_item ch;
colorhist_list next;
};
colorhist_vector ppm_computecolorhist ARGS(( pixel** pixels, int16 cols, int16 rows, int16 maxcolors, int16* colorsP ));
/* Returns a colorhist *colorsP int32 (with space allocated for maxcolors. */
void ppm_addtocolorhist ARGS(( colorhist_vector chv, int16* colorsP, int16 maxcolors, pixel* colorP, int16 value, int16 position ));
void ppm_freecolorhist ARGS(( colorhist_vector chv ));
/* Color hash table stuff. */
typedef colorhist_list* colorhash_table;
colorhash_table ppm_computecolorhash ARGS(( pixel** pixels, int16 cols, int16 rows, int16 maxcolors, int16* colorsP ));
int16
ppm_lookupcolor ARGS(( colorhash_table cht, pixel* colorP ));
colorhist_vector ppm_colorhashtocolorhist ARGS(( colorhash_table cht, int16 maxcolors ));
colorhash_table ppm_colorhisttocolorhash ARGS(( colorhist_vector chv, int16 colors ));
int16 ppm_addtocolorhash ARGS(( colorhash_table cht, pixel* colorP, int16 value ));
/* Returns -1 on failure. */
colorhash_table ppm_alloccolorhash ARGS(( void ));
void ppm_freecolorhash ARGS(( colorhash_table cht ));