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
35#pragma once
36
37#include "common/colorspaces.h"
38#include "common/image.h"
39
41#ifdef __cplusplus
42extern "C" {
43#endif
44
70
71
74
77const GList* dt_exif_get_exiv2_taglist();
78
81int dt_exif_read(dt_image_t *img, const char *path);
82
84int dt_exif_read_from_blob(dt_image_t *img, uint8_t *blob, const int size);
85
88int dt_exif_read_blob(uint8_t **blob, const char *path, const int32_t imgid, const int sRGB, const int out_width,
89 const int out_height, const int dng_mode);
90
92void dt_exif_img_check_additional_tags(dt_image_t *img, const char *filename);
93
95int dt_exif_write_blob(uint8_t *blob, uint32_t size, const char *path, const int compressed);
96
98int dt_exif_xmp_write_with_imgpath(const struct dt_image_t *image, const char *filename, const char *imgpath);
99
101int dt_exif_xmp_attach_export(const int32_t imgid, const char *filename, void *metadata);
102
104char *dt_exif_xmp_read_string(const int32_t imgid);
105
107int dt_exif_xmp_read(dt_image_t *img, const char *filename, const int history_only);
108
110int dt_exif_get_thumbnail(const char *path, uint8_t **buffer, size_t *size, char **mime_type, int *width, int *height, int min_width);
111
113void dt_exif_init();
114void dt_exif_cleanup();
115
117char *dt_exif_xmp_encode(const unsigned char *input, const int len, int *output_len);
118char *dt_exif_xmp_encode_internal(const unsigned char *input, const int len, int *output_len, gboolean do_compress);
119unsigned char *dt_exif_xmp_decode(const char *input, const int len, int *output_len);
120
123
125void dt_exif_get_datetime_taken(const uint8_t *data, size_t size, char *datetime_taken);
126
127#ifdef __cplusplus
128}
129#endif
130
131// clang-format off
132// modelines: These editor modelines have been set for all relevant files by tools/update_modelines.py
133// vim: shiftwidth=2 expandtab tabstop=2 cindent
134// kate: tab-indents: off; indent-width 2; replace-tabs on; indent-mode cstyle; remove-trailing-spaces modified;
135// clang-format on
int width
Definition bilateral.h:1
int height
Definition bilateral.h:1
dt_colorspaces_color_profile_type_t
Definition colorspaces.h:81
static dt_aligned_pixel_t sRGB
Definition colorspaces_inline_conversions.h:430
unsigned char * dt_exif_xmp_decode(const char *input, const int len, int *output_len)
Definition exif.cc:2330
int dt_exif_xmp_attach_export(const int32_t imgid, const char *filename, void *metadata)
Definition exif.cc:4186
dt_colorspaces_color_profile_type_t dt_exif_get_color_space(const uint8_t *data, size_t size)
Definition exif.cc:4537
int dt_exif_read_from_blob(dt_image_t *img, uint8_t *blob, const int size)
Definition exif.cc:1686
void dt_exif_get_datetime_taken(const uint8_t *data, size_t size, char *datetime_taken)
Definition exif.cc:4582
void dt_exif_set_exiv2_taglist()
Definition exif.cc:265
void dt_exif_init()
Definition exif.cc:4610
int dt_exif_xmp_write_with_imgpath(const struct dt_image_t *image, const char *filename, const char *imgpath)
int dt_exif_read(dt_image_t *img, const char *path)
Definition exif.cc:1757
char * dt_exif_xmp_encode_internal(const unsigned char *input, const int len, int *output_len, gboolean do_compress)
Definition exif.cc:2265
int dt_exif_xmp_read(dt_image_t *img, const char *filename, const int history_only)
Definition exif.cc:3098
char * dt_exif_xmp_encode(const unsigned char *input, const int len, int *output_len)
Definition exif.cc:2239
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:1706
void dt_exif_img_check_additional_tags(dt_image_t *img, const char *filename)
Definition exif.cc:835
int dt_exif_read_blob(uint8_t **blob, const char *path, const int32_t imgid, const int sRGB, const int out_width, const int out_height, const int dng_mode)
Definition exif.cc:1883
void dt_exif_cleanup()
Definition exif.cc:4650
char * dt_exif_xmp_read_string(const int32_t imgid)
Definition exif.cc:4061
const GList * dt_exif_get_exiv2_taglist()
Definition exif.cc:355
int dt_exif_write_blob(uint8_t *blob, uint32_t size, const char *path, const int compressed)
Definition exif.cc:1809
dt_dng_illuminant_t
Definition exif.h:46
@ DT_LS_D65
Definition exif.h:64
@ DT_LS_DayWhiteFluorescent
Definition exif.h:56
@ DT_LS_Fluorescent
Definition exif.h:49
@ DT_LS_Daylight
Definition exif.h:48
@ DT_LS_D75
Definition exif.h:65
@ DT_LS_CloudyWeather
Definition exif.h:53
@ DT_LS_D50
Definition exif.h:66
@ DT_LS_StandardLightB
Definition exif.h:61
@ DT_LS_StandardLightC
Definition exif.h:62
@ DT_LS_CoolWhiteFluorescent
Definition exif.h:57
@ DT_LS_Shade
Definition exif.h:54
@ DT_LS_Flash
Definition exif.h:51
@ DT_LS_Tungsten
Definition exif.h:50
@ DT_LS_Unknown
Definition exif.h:47
@ DT_LS_WarmWhiteFluorescent
Definition exif.h:59
@ DT_LS_StandardLightA
Definition exif.h:60
@ DT_LS_FineWeather
Definition exif.h:52
@ DT_LS_Other
Definition exif.h:68
@ DT_LS_D55
Definition exif.h:63
@ DT_LS_DaylightFluorescent
Definition exif.h:55
@ DT_LS_ISOStudioTungsten
Definition exif.h:67
@ DT_LS_WhiteFluorescent
Definition exif.h:58
size_t size
Definition mipmap_cache.c:3
Definition common/image.h:247