Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
exif.h
Go to the documentation of this file.
1/*
2 This file is part of darktable,
3 Copyright (C) 2009-2013 johannes hanika.
4 Copyright (C) 2010 calca.
5 Copyright (C) 2010 Henrik Andersson.
6 Copyright (C) 2011-2012, 2014-2016 Tobias Ellinghaus.
7 Copyright (C) 2012 Pascal de Bruijn.
8 Copyright (C) 2012 Richard Wonka.
9 Copyright (C) 2013 Ulrich Pegelow.
10 Copyright (C) 2014 Pedro Côrte-Real.
11 Copyright (C) 2014-2016 Roman Lebedev.
12 Copyright (C) 2016 Matthieu Volat.
13 Copyright (C) 2019, 2021 Hanno Schwalm.
14 Copyright (C) 2019-2020, 2022 Philippe Weyland.
15 Copyright (C) 2020 Pascal Obry.
16 Copyright (C) 2021 Hubert Kowalski.
17 Copyright (C) 2022 Martin Bařinka.
18 Copyright (C) 2022 paolodepetrillo.
19 Copyright (C) 2023, 2025 Aurélien PIERRE.
20
21 darktable is free software: you can redistribute it and/or modify
22 it under the terms of the GNU General Public License as published by
23 the Free Software Foundation, either version 3 of the License, or
24 (at your option) any later version.
25
26 darktable is distributed in the hope that it will be useful,
27 but WITHOUT ANY WARRANTY; without even the implied warranty of
28 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 GNU General Public License for more details.
30
31 You should have received a copy of the GNU General Public License
32 along with darktable. If not, see <http://www.gnu.org/licenses/>.
33*/
34
47#ifndef DT_METADATA_EXIF_H
48#define DT_METADATA_EXIF_H
49
51#include "common/image.h"
52
54#ifdef __cplusplus
55extern "C" {
56#endif
57
83
84
87
90const GList* dt_exif_get_exiv2_taglist();
91
94int dt_exif_read(dt_image_t *img, const char *path);
95
97int dt_exif_read_from_blob(dt_image_t *img, uint8_t *blob, const int size);
98
100void dt_exif_img_check_additional_tags(dt_image_t *img, const char *filename);
101
107void dt_exif_read_usercrop(dt_image_t *img, const char *filename);
108
110int dt_exif_write_blob(uint8_t *blob, uint32_t size, const char *path, const int compressed);
111
113int dt_exif_get_thumbnail(const char *path, uint8_t **buffer, size_t *size, char **mime_type, int *width, int *height, int min_width);
114
116void dt_exif_init();
117void dt_exif_cleanup();
118
124char *dt_exif_xmp_encode(const unsigned char *input, const int len, int *output_len);
125char *dt_exif_xmp_encode_internal(const unsigned char *input, const int len, int *output_len, gboolean do_compress);
126unsigned char *dt_exif_xmp_decode(const char *input, const int len, int *output_len);
127
130
132void dt_exif_get_datetime_taken(const uint8_t *data, size_t size, char *datetime_taken);
133
134#ifdef __cplusplus
135}
136#endif
137
138#endif // DT_METADATA_EXIF_H
139
140// clang-format off
141// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
142// vim: shiftwidth=2 expandtab tabstop=2 cindent
143// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
144// clang-format on
unsigned char * dt_exif_xmp_decode(const char *input, const int len, int *output_len)
Definition exif.cc:2207
dt_colorspaces_color_profile_type_t dt_exif_get_color_space(const uint8_t *data, size_t size)
Definition exif.cc:2330
int dt_exif_read_from_blob(dt_image_t *img, uint8_t *blob, const int size)
Definition exif.cc:1909
void dt_exif_get_datetime_taken(const uint8_t *data, size_t size, char *datetime_taken)
Definition exif.cc:2375
void dt_exif_set_exiv2_taglist()
Definition exif.cc:271
void dt_exif_init()
Definition exif.cc:2403
int dt_exif_read(dt_image_t *img, const char *path)
Definition exif.cc:1994
char * dt_exif_xmp_encode_internal(const unsigned char *input, const int len, int *output_len, gboolean do_compress)
Definition exif.cc:2142
void dt_exif_read_usercrop(dt_image_t *img, const char *filename)
Definition exif.cc:1031
char * dt_exif_xmp_encode(const unsigned char *input, const int len, int *output_len)
Definition exif.cc:2116
int dt_exif_get_thumbnail(const char *path, uint8_t **buffer, size_t *size, char **mime_type, int *width, int *height, int min_width)
Definition exif.cc:1929
void dt_exif_img_check_additional_tags(dt_image_t *img, const char *filename)
Definition exif.cc:1055
void dt_exif_cleanup()
Definition exif.cc:2443
const GList * dt_exif_get_exiv2_taglist()
Definition exif.cc:361
int dt_exif_write_blob(uint8_t *blob, uint32_t size, const char *path, const int compressed)
Definition exif.cc:2057
dt_dng_illuminant_t
Definition exif.h:59
@ DT_LS_D65
Definition exif.h:77
@ DT_LS_DayWhiteFluorescent
Definition exif.h:69
@ DT_LS_Fluorescent
Definition exif.h:62
@ DT_LS_Daylight
Definition exif.h:61
@ DT_LS_D75
Definition exif.h:78
@ DT_LS_CloudyWeather
Definition exif.h:66
@ DT_LS_D50
Definition exif.h:79
@ DT_LS_StandardLightB
Definition exif.h:74
@ DT_LS_StandardLightC
Definition exif.h:75
@ DT_LS_CoolWhiteFluorescent
Definition exif.h:70
@ DT_LS_Shade
Definition exif.h:67
@ DT_LS_Flash
Definition exif.h:64
@ DT_LS_Tungsten
Definition exif.h:63
@ DT_LS_Unknown
Definition exif.h:60
@ DT_LS_WarmWhiteFluorescent
Definition exif.h:72
@ DT_LS_StandardLightA
Definition exif.h:73
@ DT_LS_FineWeather
Definition exif.h:65
@ DT_LS_Other
Definition exif.h:81
@ DT_LS_D55
Definition exif.h:76
@ DT_LS_DaylightFluorescent
Definition exif.h:68
@ DT_LS_ISOStudioTungsten
Definition exif.h:80
@ DT_LS_WhiteFluorescent
Definition exif.h:71
uint32_t width
Definition mipmap_cache.c:0
uint32_t height
Definition mipmap_cache.c:1
size_t size
Definition mipmap_cache.c:3
The colour-profile vocabulary, and nothing else.
dt_colorspaces_color_profile_type_t