libdng.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef LIBDNG_LIBRARY_H
  2. #define LIBDNG_LIBRARY_H
  3. #include <limits.h>
  4. #include <time.h>
  5. #include <stdint.h>
  6. #define EXPORT __attribute__((__visibility__("default")))
  7. typedef struct {
  8. char *camera_make;
  9. char *camera_model;
  10. char *unique_camera_model;
  11. char *software;
  12. uint16_t orientation;
  13. struct tm datetime;
  14. // Raw image data
  15. uint16_t bayer_pattern_dimensions[2];
  16. float colormatrix1[9];
  17. float colormatrix2[9];
  18. float neutral[3];
  19. uint8_t cfapattern[4];
  20. } libdng_info;
  21. #define LIBDNG_ORIENTATION_TOPLEFT 1
  22. #define LIBDNG_ORIENTATION_TOPRIGHT 2
  23. #define LIBDNG_ORIENTATION_BOTRIGHT 3
  24. #define LIBDNG_ORIENTATION_BOTLEFT 4
  25. #define LIBDNG_ORIENTATION_LEFTTOP 5
  26. #define LIBDNG_ORIENTATION_RIGHTTOP 6
  27. #define LIBDNG_ORIENTATION_RIGHTBOT 7
  28. #define LIBDNG_ORIENTATION_LEFTBOT 8
  29. EXPORT int
  30. libdng_init();
  31. EXPORT void
  32. libdng_new(libdng_info *dng);
  33. EXPORT void
  34. libdng_free(libdng_info *dng);
  35. EXPORT int
  36. libdng_set_mode_from_name(libdng_info *dng, const char *name);
  37. EXPORT int
  38. libdng_set_mode_from_pixfmt(libdng_info *dng, uint32_t pixfmt);
  39. EXPORT int
  40. libdng_set_make_model(libdng_info *dng, const char *make, const char *model);
  41. EXPORT int
  42. libdng_set_datetime(libdng_info *dng, struct tm time);
  43. EXPORT int
  44. libdng_set_datetime_now(libdng_info *dng);
  45. EXPORT int
  46. libdng_set_orientation(libdng_info *dng, uint16_t orientation);
  47. EXPORT int
  48. libdng_write(libdng_info *dng, const char *path, unsigned int width, unsigned int height, const uint8_t *data,
  49. size_t length);
  50. #endif //LIBDNG_LIBRARY_H