-
Notifications
You must be signed in to change notification settings - Fork 8
/
dcraw_api.h
92 lines (82 loc) · 2.91 KB
/
dcraw_api.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/*
* UFRaw - Unidentified Flying Raw converter for digital camera images
*
* dcraw_api.h - API for DCRaw
* Copyright 2004-2016 by Udi Fuchs
*
* based on dcraw by Dave Coffin
* http://www.cybercom.net/~dcoffin/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*/
#ifndef _DCRAW_API_H
#define _DCRAW_API_H
#ifdef __cplusplus
extern "C" {
#endif
typedef guint16 dcraw_image_type[4];
typedef struct {
dcraw_image_type *image;
int width, height, colors;
} dcraw_image_data;
typedef struct {
void *dcraw;
FILE *ifp;
int width, height, colors, fourColorFilters, raw_color;
unsigned filters;
int top_margin, left_margin, flip, shrink;
double pixel_aspect;
dcraw_image_data raw;
dcraw_image_type thresholds;
float pre_mul[4], post_mul[4], cam_mul[4], rgb_cam[3][4];
double cam_rgb[4][3];
int rgbMax, black, fuji_width;
double fuji_step;
short fuji_dr;
int toneCurveSize, toneCurveOffset;
int toneModeSize, toneModeOffset;
char *message, xtrans[6][6];
float iso_speed, shutter, aperture, focal_len;
time_t timestamp;
char make[80], model[80];
int thumbType, thumbOffset;
size_t thumbBufferLength;
} dcraw_data;
enum { dcraw_ahd_interpolation,
dcraw_vng_interpolation, dcraw_four_color_interpolation,
dcraw_ppg_interpolation, dcraw_bilinear_interpolation,
dcraw_xtrans_interpolation, dcraw_none_interpolation
};
enum { unknown_thumb_type, jpeg_thumb_type, ppm_thumb_type };
int dcraw_open(dcraw_data *h, char *filename);
int dcraw_load_raw(dcraw_data *h);
int dcraw_load_thumb(dcraw_data *h, dcraw_image_data *thumb);
int dcraw_finalize_shrink(dcraw_image_data *f, dcraw_data *h,
int scale);
int dcraw_image_resize(dcraw_image_data *image, int size);
int dcraw_image_stretch(dcraw_image_data *image, double pixel_aspect);
int dcraw_flip_image(dcraw_image_data *image, int flip);
int dcraw_set_color_scale(dcraw_data *h, int useCameraWB);
void dcraw_wavelet_denoise(dcraw_data *h, float threshold);
void dcraw_wavelet_denoise_shrinked(dcraw_image_data *f, float threshold);
void dcraw_finalize_raw(dcraw_data *h, dcraw_data *dark, int rgbWB[4]);
int dcraw_finalize_interpolate(dcraw_image_data *f, dcraw_data *h,
int interpolation, int smoothing);
void dcraw_close(dcraw_data *h);
void dcraw_image_dimensions(dcraw_data *raw, int flip, int shrink,
int *height, int *width);
#define DCRAW_SUCCESS 0
#define DCRAW_ERROR 1
#define DCRAW_UNSUPPORTED 2
#define DCRAW_NO_CAMERA_WB 3
#define DCRAW_VERBOSE 4
#define DCRAW_WARNING 5
#define DCRAW_OPEN_ERROR 6
void dcraw_message(void *dcraw, int code, char *format, ...);
#ifdef __cplusplus
}
#endif
#endif /*_DCRAW_API_H*/