25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

pipi.h 2.0 KiB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * libpipi Proper image processing implementation library
  3. * Copyright (c) 2004-2008 Sam Hocevar <sam@zoy.org>
  4. * All Rights Reserved
  5. *
  6. * $Id$
  7. *
  8. * This library is free software. It comes without any warranty, to
  9. * the extent permitted by applicable law. You can redistribute it
  10. * and/or modify it under the terms of the Do What The Fuck You Want
  11. * To Public License, Version 2, as published by Sam Hocevar. See
  12. * http://sam.zoy.org/wtfpl/COPYING for more details.
  13. */
  14. /*
  15. * pipi.h: the full libpipi public API
  16. */
  17. #ifndef __PIPI_H__
  18. #define __PIPI_H__
  19. #ifdef __cplusplus
  20. extern "C"
  21. {
  22. #endif
  23. /* pipi_format_t: this enum is a list of all possible pixel formats for
  24. * our internal images. RGBA32 is the most usual format when an image has
  25. * just been loaded, but RGBA_F is a lot better for complex operations. */
  26. typedef enum
  27. {
  28. PIPI_PIXELS_UNINITIALISED = -1,
  29. PIPI_PIXELS_RGBA32 = 0,
  30. PIPI_PIXELS_BGR24 = 1,
  31. PIPI_PIXELS_RGBA_F = 2,
  32. PIPI_PIXELS_Y_F = 3,
  33. PIPI_PIXELS_MAX = 4
  34. }
  35. pipi_format_t;
  36. /* pipi_pixels_t: this structure stores a pixel view of an image. */
  37. typedef struct
  38. {
  39. void *pixels;
  40. int w, h, pitch;
  41. }
  42. pipi_pixels_t;
  43. /* pipi_image_t: the main image type */
  44. typedef struct pipi_image pipi_image_t;
  45. extern pipi_image_t *pipi_load(const char *);
  46. extern pipi_image_t *pipi_new(int, int);
  47. extern void pipi_free(pipi_image_t *);
  48. extern void pipi_save(pipi_image_t *, const char *);
  49. extern pipi_pixels_t *pipi_getpixels(pipi_image_t *, pipi_format_t);
  50. extern double pipi_measure_rmsd(pipi_image_t *, pipi_image_t *);
  51. extern pipi_image_t *pipi_resize(pipi_image_t *, int, int);
  52. extern pipi_image_t *pipi_gaussian_blur(pipi_image_t *, float);
  53. extern pipi_image_t *pipi_gaussian_blur_ext(pipi_image_t *,
  54. float, float, float, float);
  55. extern void pipi_dither_24to16(pipi_image_t *);
  56. extern void pipi_test(pipi_image_t *);
  57. #ifdef __cplusplus
  58. }
  59. #endif
  60. #endif /* __PIPI_H__ */