izoom.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:1k
源码类别:

GIS编程

开发平台:

Visual C++

  1. #ifndef IZOOMDEF
  2. #define IZOOMDEF
  3. /**
  4.  **     header for izoom- 
  5.  **             Magnify or minify a picture with or without filtering.  The 
  6.  **     filtered method is one pass, uses 2-d convolution, and is optimized 
  7.  **     by integer arithmetic and precomputation of filter coeffs.
  8.  **
  9.  **                             Paul Haeberli - 1988
  10.  **/
  11. #define IMPULSE 1
  12. #define BOX 2
  13. #define TRIANGLE 3
  14. #define QUADRATIC 4
  15. #define MITCHELL 5
  16. #define GAUSSIAN 6
  17. typedef struct FILTER {
  18.   int n, totw, halftotw;
  19.   short *dat;
  20.   short *w;
  21. } FILTER;
  22. typedef void (*getfunc_t) (short *, int);
  23. typedef struct zoom {
  24.   getfunc_t getfunc;
  25.   short *abuf;
  26.   short *bbuf;
  27.   int anx, any;
  28.   int bnx, bny;
  29.   short **xmap;
  30.   int type;
  31.   int curay;
  32.   int y;
  33.   FILTER *xfilt, *yfilt;  /* stuff for fitered zoom */
  34.   short *tbuf;
  35.   int nrows, clamp, ay;
  36.   short **filtrows;
  37.   int *accrow;
  38. } zoom;
  39. zoom *newzoom(getfunc_t getfunc, int anx, int any, int bnx, int bny, int filttype, float blur);
  40. float filterinteg(float bmin, float bmax, float blurf);
  41. void filterzoom(getfunc_t getfunc, getfunc_t putfunc, int anx, int any, int bnx, int bny, int filttype, float blur);
  42. #endif