33#ifndef DT_METADATA_EXIF_INTERNAL_H
34#define DT_METADATA_EXIF_INTERNAL_H
38#include <exiv2/exiv2.hpp>
59#if defined(_WIN32) && !defined(EXV_UNICODE_PATH) && !defined(ANSEL_ALLOW_NARROW_EXIV2_PATHS)
60#error "This exiv2 was built without EXV_UNICODE_PATH (EXIV2_ENABLE_WIN_UNICODE), so there is no way to give it a Windows path holding a non-ASCII character: EXIF reads, thumbnail extraction and XMP sidecar writes would all fail at runtime, silently, for those images. Configure with -DUSE_BUNDLED_EXIV2=ON (the default) and see doc/exiv2.md. Define ANSEL_ALLOW_NARROW_EXIV2_PATHS to build anyway and accept that."
63#if defined(_WIN32) && defined(EXV_UNICODE_PATH)
71#define WIDEN(s) dt_exiv2_widen_path(s)
bool dt_exif_decode_xmp_data(dt_image_t *img, Exiv2::XmpData &xmpData, int version, bool exif_read)
Apply one XMP packet's metadata, tags and colour labels to img.
void dt_remove_exif_keys(Exiv2::ExifData &exif, const char *keys[], unsigned int n_keys)
Strip the given EXIF keys from exif, ignoring any that are absent.
bool dt_exif_read_exif_tag(Exiv2::ExifData &exifData, Exiv2::ExifData::const_iterator *pos, std::string key)
Read one EXIF tag into pos, FALSE if the image does not carry it.