Dl1quant.h
上传用户:qiutianh
上传日期:2022-08-08
资源大小:939k
文件大小:1k
源码类别:

图形图象

开发平台:

Visual C++

  1. //
  2. // This has been modified from Dennis Lee's original version
  3. //
  4. /*
  5.  * File: dl1quant.h
  6.  *
  7.  * Header file for dl1quant.c (DL1 Quantization)
  8.  *
  9.  * Copyright (C) 1993-1997 Dennis Lee
  10.  */
  11. #ifndef DL1QUANT_H
  12. #define DL1QUANT_H
  13. #include "basic.h"
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. typedef struct {
  18.     ulong r, g, b;
  19.     ulong pixel_count;
  20.     ulong pixels_in_cube;
  21.     uchar children;
  22.     uchar palette_index;
  23.     } CUBE;
  24. typedef struct {
  25.     uchar  level;
  26.     ushort index;
  27.     } FCUBE;
  28. typedef struct {
  29.     uchar palette_index,
  30.   red, green, blue;
  31.     ulong distance;
  32.     ulong squares[255+255+1];
  33.     } CLOSEST_INFO;
  34. GLOBAL int
  35. dl1quant(uchar *inbuf, 
  36.  uchar *outbuf, 
  37.  int width, 
  38.  int height, 
  39.  int quant_to,
  40.  int dither, 
  41.  uchar userpal[3][256]);
  42. LOCAL  void copy_pal(uchar userpal[3][256]);
  43. LOCAL  void dlq_init(void);
  44. LOCAL  int  dlq_start(void);
  45. LOCAL  void dlq_finish(void);
  46. LOCAL  int  build_table(uchar *image, ulong pixels);
  47. LOCAL  void fixheap(ulong id);
  48. LOCAL  void reduce_table(int num_colors);
  49. LOCAL  void set_palette(int index, int level);
  50. LOCAL  void closest_color(int index, int level);
  51. LOCAL  int  quantize_image(uchar *in, uchar *out, int width, int height, 
  52.    int dither);
  53. LOCAL  int  bestcolor(int r, int g, int b);
  54. #endif
  55. #ifdef __cplusplus
  56. }
  57. #endif