digiKam
Digikam::DMetadata Class Reference
+ Inheritance diagram for Digikam::DMetadata:

Public Types

typedef QMap< QString, QString > AltLangMap
 
enum  Backend {
  Exiv2Backend = 0 , LibRawBackend , LibHeifBackend , ImageMagickBackend ,
  FFMpegBackend , NoBackend
}
 
typedef QMap< QString, QString > CountryCodeMap
 
enum  ImageColorWorkSpace { WORKSPACE_UNSPECIFIED = 0 , WORKSPACE_SRGB = 1 , WORKSPACE_ADOBERGB = 2 , WORKSPACE_UNCALIBRATED = 65535 }
 
enum  ImageOrientation {
  ORIENTATION_UNSPECIFIED = 0 , ORIENTATION_NORMAL = 1 , ORIENTATION_HFLIP = 2 , ORIENTATION_ROT_180 = 3 ,
  ORIENTATION_VFLIP = 4 , ORIENTATION_ROT_90_HFLIP = 5 , ORIENTATION_ROT_90 = 6 , ORIENTATION_ROT_90_VFLIP = 7 ,
  ORIENTATION_ROT_270 = 8
}
 
typedef QMap< QString, QString > MetaDataMap
 
enum  MetadataWritingMode { WRITE_TO_FILE_ONLY = 0 , WRITE_TO_SIDECAR_ONLY = 1 , WRITE_TO_SIDECAR_AND_FILE = 2 , WRITE_TO_SIDECAR_ONLY_FOR_READ_ONLY_FILES = 3 }
 
typedef QMap< QString, QStringList > TagsMap
 
enum  VIDEOCOLORMODEL {
  VIDEOCOLORMODEL_UNKNOWN = 1000 , VIDEOCOLORMODEL_OTHER , VIDEOCOLORMODEL_SRGB , VIDEOCOLORMODEL_BT709 ,
  VIDEOCOLORMODEL_BT601
}
 
enum  XmpTagType {
  NormalTag = 0 , ArrayBagTag = 1 , StructureTag = 2 , ArrayLangTag = 3 ,
  ArraySeqTag = 4
}
 

Public Member Functions

bool addToXmpTagStringBag (const char *const xmpTagName, const QStringList &entriesToAdd) const
 
bool applyChanges (bool setVersion=false) const
 
 DMetadata ()
 
 DMetadata (const MetaEngineData &data)
 
 DMetadata (const QString &filePath)
 
bool getACDSeeTagsPath (QStringList &tagsPath) const
 
QString getCameraSerialNumber () const
 
bool getCopyrightInformation (Template &t) const
 
IptcCoreContactInfo getCreatorContactInfo () const
 
IccProfile getIccProfile () const
 
IptcCoreLocationInfo getIptcCoreLocation () const
 
QStringList getIptcCoreSubjects () const
 
int getItemColorLabel (const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
CaptionsMap getItemComments (const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool getItemFacesMap (QMultiMap< QString, QVariant > &facesPath) const
 
QString getItemHistory () const
 
int getItemPickLabel () const
 
int getItemRating (const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool getItemTagsPath (QStringList &tagsPath, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
CaptionsMap getItemTitles (const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
QString getItemUniqueId () const
 
QString getLensDescription () const
 
QVariant getMetadataField (MetadataInfo::Field field) const
 
QVariantList getMetadataFields (const MetadataFields &fields) const
 
Template getMetadataTemplate () const
 
int getMSecsInfo () const
 
PhotoInfoContainer getPhotographInformation () const
 
VideoInfoContainer getVideoInformation () const
 
QStringList getXmpKeywords () const
 
QStringList getXmpSubCategories () const
 
QStringList getXmpSubjects () const
 
bool hasItemHistoryTag () const
 
bool load (const QString &filePath, Backend *backend=nullptr)
 
bool loadUsingFFmpeg (const QString &filePath)
 
bool loadUsingRawEngine (const QString &filePath)
 
bool mSecTimeStamp (const char *const exifTagName, int &ms) const
 
void registerMetadataSettings ()
 
bool removeExifColorSpace () const
 
bool removeExifTags (const QStringList &tagFilters)
 
bool removeFromXmpTagStringBag (const char *const xmpTagName, const QStringList &entriesToRemove) const
 
bool removeIptcTags (const QStringList &tagFilters)
 
bool removeItemFacesMap () const
 
bool removeMetadataTemplate () const
 
bool removeXmpKeywords (const QStringList &keywordsToRemove)
 
bool removeXmpSubCategories (const QStringList &categoriesToRemove)
 
bool removeXmpSubjects (const QStringList &subjectsToRemove)
 
bool removeXmpTags (const QStringList &tagFilters)
 
bool save (const QString &filePath, bool setVersion=false) const
 
bool setACDSeeTagsPath (const QStringList &tagsPath) const
 
bool setCreatorContactInfo (const IptcCoreContactInfo &info) const
 
bool setIccProfile (const IccProfile &profile)
 
bool setIptcCoreLocation (const IptcCoreLocationInfo &location) const
 
bool setItemColorLabel (int colorId, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool setItemComments (const CaptionsMap &comments, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool setItemFacesMap (const QMultiMap< QString, QVariant > &facesPath, bool write, const QSize &size=QSize()) const
 
bool setItemHistory (const QString &imageHistoryXml) const
 
bool setItemPickLabel (int pickId) const
 
bool setItemRating (int rating, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool setItemTagsPath (const QStringList &tagsPath, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool setItemTitles (const CaptionsMap &title, const DMetadataSettingsContainer &settings=DMetadataSettings::instance() ->settings()) const
 
bool setItemUniqueId (const QString &uuid) const
 
bool setMetadataTemplate (const Template &t) const
 
void setSettings (const MetaEngineSettingsContainer &settings)
 
bool setXmpKeywords (const QStringList &newKeywords) const
 
bool setXmpSubCategories (const QStringList &newSubCategories) const
 
bool setXmpSubjects (const QStringList &newSubjects) const
 
 ~DMetadata ()
 
General methods
MetaEngineData data () const
 
void setData (const MetaEngineData &data)
 
bool loadFromData (const QByteArray &imgData)
 
bool isEmpty () const
 
QSize getPixelSize () const
 
QString getMimeType () const
 
void setWriteRawFiles (const bool on)
 
bool writeRawFiles () const
 
void setWriteDngFiles (const bool on)
 
bool writeDngFiles () const
 
void setUseXMPSidecar4Reading (const bool on)
 
bool useXMPSidecar4Reading () const
 
void setUseCompatibleFileName (const bool on)
 
bool useCompatibleFileName () const
 
void setMetadataWritingMode (const int mode)
 
int metadataWritingMode () const
 
void setUpdateFileTimeStamp (bool on)
 
bool updateFileTimeStamp () const
 
Metadata item information manipulation methods
bool setItemProgramId (const QString &program, const QString &version) const
 
QSize getItemDimensions () const
 
bool setItemDimensions (const QSize &size) const
 
MetaEngine::ImageOrientation getItemOrientation () const
 
bool setItemOrientation (ImageOrientation orientation) const
 
MetaEngine::ImageColorWorkSpace getItemColorWorkSpace () const
 
bool setItemColorWorkSpace (ImageColorWorkSpace workspace) const
 
QDateTime getItemDateTime () const
 
bool setImageDateTime (const QDateTime &dateTime, bool setDateTimeDigitized=false) const
 
QDateTime getDigitizationDateTime (bool fallbackToCreationTime=false) const
 
bool getItemPreview (QImage &preview) const
 
bool setItemPreview (const QImage &preview) const
 

Static Public Member Functions

static double apexApertureToFNumber (double aperture)
 
static double apexShutterSpeedToExposureTime (double shutterSpeed)
 
static CountryCodeMap countryCodeMap ()
 
static QMap< int, QString > possibleValuesForEnumField (MetadataInfo::Field field)
 
static MetaEngine::AltLangMap toAltLangMap (const QVariant &var)
 
static QStringList valuesToString (const QVariantList &list, const MetadataFields &fields)
 
static QString valueToString (const QVariant &value, MetadataInfo::Field field)
 
static QString videoColorModelToString (VIDEOCOLORMODEL videoColorModel)
 
Static methods
static bool initializeExiv2 ()
 
static bool supportXmp ()
 
static bool supportBmff ()
 
static bool supportMetadataWriting (const QString &typeMime)
 
static QString Exiv2Version ()
 

File I/O methods

void setFilePath (const QString &path)
 
QString getFilePath () const
 
bool loadFromSidecarAndMerge (const QString &filePath)
 
bool exportChanges (const QString &exvTmpFile, QStringList &removedTags) const
 
static QString sidecarFilePathForFile (const QString &path, bool useLR=false)
 
static QString sidecarPath (const QString &path)
 
static QUrl sidecarUrl (const QUrl &url)
 
static QUrl sidecarUrl (const QString &path)
 
static bool hasSidecar (const QString &path)
 
static QString backendName (Backend t)
 

Comments manipulation methods

bool hasComments () const
 
bool clearComments () const
 
QByteArray getComments () const
 
QString getCommentsDecoded () const
 
bool setComments (const QByteArray &data) const
 
static bool canWriteComment (const QString &filePath)
 
static QString detectLanguageAlt (const QString &value, QString &lang)
 

Exif manipulation methods

TagsMap getStdExifTagsList () const
 
TagsMap getMakernoteTagsList () const
 
bool hasExif () const
 
bool clearExif () const
 
QByteArray getExifEncoded (bool addExifHeader=false) const
 
bool setExif (const QByteArray &data) const
 
QImage getExifThumbnail (bool fixOrientation) const
 
bool rotateExifQImage (QImage &image, ImageOrientation orientation) const
 
bool setExifThumbnail (const QImage &thumb) const
 
bool removeExifThumbnail () const
 
bool setTiffThumbnail (const QImage &thumb) const
 
QString getExifComment (bool readDescription=true) const
 
bool setExifComment (const QString &comment, bool writeDescription=true) const
 
QString getExifTagString (const char *exifTagName, bool escapeCR=true) const
 
bool setExifTagString (const char *exifTagName, const QString &value) const
 
bool getExifTagLong (const char *exifTagName, long &val) const
 
bool getExifTagLong (const char *exifTagName, long &val, int component) const
 
bool setExifTagLong (const char *exifTagName, long val) const
 
bool getExifTagRational (const char *exifTagName, long int &num, long int &den, int component=0) const
 
bool setExifTagRational (const char *exifTagName, long int num, long int den) const
 
QByteArray getExifTagData (const char *exifTagName) const
 
bool setExifTagData (const char *exifTagName, const QByteArray &data) const
 
QVariant getExifTagVariant (const char *exifTagName, bool rationalAsListOfInts=true, bool escapeCR=true, int component=0) const
 
bool setExifTagVariant (const char *exifTagName, const QVariant &data, bool rationalWantSmallDenominator=true) const
 
bool removeExifTag (const char *exifTagName) const
 
QString getExifTagTitle (const char *exifTagName)
 
QString getExifTagDescription (const char *exifTagName)
 
QString createExifUserStringFromValue (const char *exifTagName, const QVariant &val, bool escapeCR=true)
 
MetaEngine::MetaDataMap getExifTagsDataList (const QStringList &exifKeysFilter=QStringList(), bool invertSelection=false, bool extractBinary=true) const
 
static bool canWriteExif (const QString &filePath)
 

IPTC manipulation methods

MetaEngine::TagsMap getIptcTagsList () const
 
bool hasIptc () const
 
bool clearIptc () const
 
QByteArray getIptc (bool addIrbHeader=false) const
 
bool setIptc (const QByteArray &data) const
 
QString getIptcTagString (const char *iptcTagName, bool escapeCR=true) const
 
bool setIptcTagString (const char *iptcTagName, const QString &value) const
 
QStringList getIptcTagsStringList (const char *iptcTagName, bool escapeCR=true) const
 
bool setIptcTagsStringList (const char *iptcTagName, int maxSize, const QStringList &oldValues, const QStringList &newValues) const
 
QByteArray getIptcTagData (const char *iptcTagName) const
 
bool setIptcTagData (const char *iptcTagName, const QByteArray &data) const
 
bool removeIptcTag (const char *iptcTagName) const
 
QString getIptcTagTitle (const char *iptcTagName)
 
QString getIptcTagDescription (const char *iptcTagName)
 
MetaEngine::MetaDataMap getIptcTagsDataList (const QStringList &iptcKeysFilter=QStringList(), bool invertSelection=false) const
 
QStringList getIptcKeywords () const
 
bool setIptcKeywords (const QStringList &oldKeywords, const QStringList &newKeywords) const
 
QStringList getIptcSubjects () const
 
bool setIptcSubjects (const QStringList &oldSubjects, const QStringList &newSubjects) const
 
QStringList getIptcSubCategories () const
 
bool setIptcSubCategories (const QStringList &oldSubCategories, const QStringList &newSubCategories) const
 
static bool canWriteIptc (const QString &filePath)
 

XMP manipulation methods

MetaEngine::TagsMap getXmpTagsList () const
 
bool hasXmp () const
 
bool clearXmp () const
 
QByteArray getXmp () const
 
bool setXmp (const QByteArray &data) const
 
QString getXmpTagString (const char *xmpTagName, bool escapeCR=true) const
 
bool setXmpTagString (const char *xmpTagName, const QString &value) const
 
bool setXmpTagString (const char *xmpTagName, const QString &value, XmpTagType type) const
 
QString getXmpTagTitle (const char *xmpTagName)
 
QString getXmpTagDescription (const char *xmpTagName)
 
MetaEngine::MetaDataMap getXmpTagsDataList (const QStringList &xmpKeysFilter=QStringList(), bool invertSelection=false) const
 
MetaEngine::AltLangMap getXmpTagStringListLangAlt (const char *xmpTagName, bool escapeCR=true) const
 
bool setXmpTagStringListLangAlt (const char *xmpTagName, const MetaEngine::AltLangMap &values) const
 
QString getXmpTagStringLangAlt (const char *xmpTagName, const QString &langAlt, bool escapeCR) const
 
bool setXmpTagStringLangAlt (const char *xmpTagName, const QString &value, const QString &langAlt) const
 
QStringList getXmpTagStringSeq (const char *xmpTagName, bool escapeCR=true) const
 
bool setXmpTagStringSeq (const char *xmpTagName, const QStringList &seq) const
 
QStringList getXmpTagStringBag (const char *xmpTagName, bool escapeCR) const
 
bool setXmpTagStringBag (const char *xmpTagName, const QStringList &bag) const
 
QVariant getXmpTagVariant (const char *xmpTagName, bool rationalAsListOfInts=true, bool stringEscapeCR=true) const
 
bool removeXmpTag (const char *xmpTagName, bool family=false) const
 
static bool canWriteXmp (const QString &filePath)
 
static bool registerXmpNameSpace (const QString &uri, const QString &prefix)
 
static bool unregisterXmpNameSpace (const QString &uri)
 

GPS manipulation methods

bool initializeGPSInfo ()
 
bool getGPSInfo (double &altitude, double &latitude, double &longitude) const
 
QString getGPSLatitudeString () const
 
QString getGPSLongitudeString () const
 
bool getGPSLatitudeNumber (double *const latitude) const
 
bool getGPSLongitudeNumber (double *const longitude) const
 
bool getGPSAltitude (double *const altitude) const
 
bool setGPSInfo (const double altitude, const double latitude, const double longitude)
 
bool setGPSInfo (const double *const altitude, const double latitude, const double longitude)
 
bool setGPSInfo (const double altitude, const QString &latitude, const QString &longitude)
 
bool removeGPSInfo ()
 
static void convertToRational (const double number, long int *const numerator, long int *const denominator, const int rounding)
 
static void convertToRationalSmallDenominator (const double number, long int *const numerator, long int *const denominator)
 
static double convertDegreeAngleToDouble (double degrees, double minutes, double seconds)
 
static QString convertToGPSCoordinateString (const long int numeratorDegrees, const long int denominatorDegrees, const long int numeratorMinutes, const long int denominatorMinutes, const long int numeratorSeconds, const long int denominatorSeconds, const char directionReference)
 
static QString convertToGPSCoordinateString (const bool isLatitude, double coordinate)
 
static bool convertFromGPSCoordinateString (const QString &coordinate, long int *const numeratorDegrees, long int *const denominatorDegrees, long int *const numeratorMinutes, long int *const denominatorMinutes, long int *const numeratorSeconds, long int *const denominatorSeconds, char *const directionReference)
 
static bool convertFromGPSCoordinateString (const QString &gpsString, double *const coordinate)
 
static bool convertToUserPresentableNumbers (const QString &coordinate, int *const degrees, int *const minutes, double *const seconds, char *const directionReference)
 
static void convertToUserPresentableNumbers (const bool isLatitude, double coordinate, int *const degrees, int *const minutes, double *const seconds, char *const directionReference)
 
bool setProgramId () const
 

Member Typedef Documentation

◆ AltLangMap

typedef QMap<QString, QString> Digikam::MetaEngine::AltLangMap
inherited

A map used to store a list of Alternative Language values. The map key is the language code following RFC3066 notation (like "fr-FR" for French), and the map value the text.

◆ CountryCodeMap

typedef QMap<QString, QString> Digikam::DMetadata::CountryCodeMap

◆ MetaDataMap

typedef QMap<QString, QString> Digikam::MetaEngine::MetaDataMap
inherited

A map used to store Tags Key and Tags Value.

◆ TagsMap

typedef QMap<QString, QStringList> Digikam::MetaEngine::TagsMap
inherited

A map used to store Tags Key and a list of Tags properties :

  • name,
  • title,
  • description.

Member Enumeration Documentation

◆ Backend

Metadata Backend used to populate information.

Enumerator
Exiv2Backend 

Default backend used by MetaEngine.

LibRawBackend 

DMetadata only.

LibHeifBackend 

DMetadata only.

ImageMagickBackend 

DMetadata only.

FFMpegBackend 

DMetadata only.

NoBackend 

No backend used (aka file cannot be read)

◆ ImageColorWorkSpace

The item color workspace values given by Exif metadata.

Enumerator
WORKSPACE_UNSPECIFIED 
WORKSPACE_SRGB 
WORKSPACE_ADOBERGB 
WORKSPACE_UNCALIBRATED 

◆ ImageOrientation

The item orientation values given by Exif metadata.

Enumerator
ORIENTATION_UNSPECIFIED 
ORIENTATION_NORMAL 
ORIENTATION_HFLIP 
ORIENTATION_ROT_180 
ORIENTATION_VFLIP 
ORIENTATION_ROT_90_HFLIP 
ORIENTATION_ROT_90 
ORIENTATION_ROT_90_VFLIP 
ORIENTATION_ROT_270 

◆ MetadataWritingMode

The item metadata writing mode, between item file metadata and XMP sidecar file, depending on the context.

See also
MetadataWritingMode(), metadataWritingMode()
Enumerator
WRITE_TO_FILE_ONLY 

Write metadata to item file only.

WRITE_TO_SIDECAR_ONLY 

Write metadata to sidecar file only.

WRITE_TO_SIDECAR_AND_FILE 

Write metadata to item and sidecar files.

WRITE_TO_SIDECAR_ONLY_FOR_READ_ONLY_FILES 

Write metadata to sidecar file only for read only items such as RAW files for example.

◆ VIDEOCOLORMODEL

Video color model reported by FFMPEG following XMP DM Spec from Adobe. These values are stored in DB as Image color model properties (extension of DImg::ColorModel)

Enumerator
VIDEOCOLORMODEL_UNKNOWN 
VIDEOCOLORMODEL_OTHER 
VIDEOCOLORMODEL_SRGB 
VIDEOCOLORMODEL_BT709 
VIDEOCOLORMODEL_BT601 

◆ XmpTagType

Xmp tag types, used by setXmpTag, only first three types are used

Enumerator
NormalTag 
ArrayBagTag 
StructureTag 
ArrayLangTag 
ArraySeqTag 

Constructor & Destructor Documentation

◆ DMetadata() [1/3]

Digikam::DMetadata::DMetadata ( )

◆ DMetadata() [2/3]

Digikam::DMetadata::DMetadata ( const QString &  filePath)
explicit

◆ DMetadata() [3/3]

Digikam::DMetadata::DMetadata ( const MetaEngineData data)
explicit

◆ ~DMetadata()

Digikam::DMetadata::~DMetadata ( )

Member Function Documentation

◆ addToXmpTagStringBag()

bool Digikam::DMetadata::addToXmpTagStringBag ( const char *const  xmpTagName,
const QStringList &  entriesToAdd 
) const

Set an Xmp tag content using a list of strings defined by the 'entriesToAdd' parameter. The existing entries are preserved. The method will compare all new with all already existing entries to prevent duplicates in the image. Return true if the entries have been added to metadata.

References Digikam::MetaEngine::getXmpTagStringBag(), and Digikam::MetaEngine::setXmpTagStringBag().

Referenced by setXmpSubCategories(), and setXmpSubjects().

◆ apexApertureToFNumber()

double Digikam::DMetadata::apexApertureToFNumber ( double  aperture)
static

Referenced by getMetadataField().

◆ apexShutterSpeedToExposureTime()

double Digikam::DMetadata::apexShutterSpeedToExposureTime ( double  shutterSpeed)
static

Referenced by getMetadataField().

◆ applyChanges()

bool Digikam::DMetadata::applyChanges ( bool  setVersion = false) const

◆ backendName()

QString Digikam::MetaEngine::backendName ( Backend  t)
staticinherited

Return a string of backend name used to parse metadata from file. See Backend enum for details.

References Digikam::MetaEngine::FFMpegBackend, Digikam::MetaEngine::ImageMagickBackend, Digikam::MetaEngine::LibHeifBackend, Digikam::MetaEngine::LibRawBackend, and Digikam::MetaEngine::NoBackend.

Referenced by load().

◆ canWriteComment()

bool Digikam::MetaEngine::canWriteComment ( const QString &  filePath)
staticinherited

Return 'true' if Comments can be written in file.

References AutoPtr, and Digikam::s_metaEngineMutex.

◆ canWriteExif()

bool Digikam::MetaEngine::canWriteExif ( const QString &  filePath)
staticinherited

Return 'true' if Exif can be written in file.

References AutoPtr, and Digikam::s_metaEngineMutex.

◆ canWriteIptc()

bool Digikam::MetaEngine::canWriteIptc ( const QString &  filePath)
staticinherited

Return 'true' if Iptc can be written in file.

References AutoPtr, and Digikam::s_metaEngineMutex.

◆ canWriteXmp()

bool Digikam::MetaEngine::canWriteXmp ( const QString &  filePath)
staticinherited

Return 'true' if Xmp can be written in file.

References AutoPtr, and Digikam::s_metaEngineMutex.

◆ clearComments()

bool Digikam::MetaEngine::clearComments ( ) const
inherited

Clear the Comments metadata container in memory.

References Digikam::MetaEngine::setComments().

◆ clearExif()

bool Digikam::MetaEngine::clearExif ( ) const
inherited

◆ clearIptc()

bool Digikam::MetaEngine::clearIptc ( ) const
inherited

◆ clearXmp()

bool Digikam::MetaEngine::clearXmp ( ) const
inherited

Clear the Xmp metadata container in memory.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ convertDegreeAngleToDouble()

double Digikam::MetaEngine::convertDegreeAngleToDouble ( double  degrees,
double  minutes,
double  seconds 
)
staticinherited

Converts degrees values as a double representation. This code take a care about hemisphere position.

Referenced by Digikam::DRawDecoder::Private::fillIndentifyInfo().

◆ convertFromGPSCoordinateString() [1/2]

bool Digikam::MetaEngine::convertFromGPSCoordinateString ( const QString &  coordinate,
long int *const  numeratorDegrees,
long int *const  denominatorDegrees,
long int *const  numeratorMinutes,
long int *const  denominatorMinutes,
long int *const  numeratorSeconds,
long int *const  denominatorSeconds,
char *const  directionReference 
)
staticinherited

Converts a GPSCoordinate string as defined by XMP to three rationals and the direction reference. Returns true if the conversion was successful. If minutes is given in the fractional form, a denominator of 1000000 for the minutes will be used.

Referenced by Digikam::MetaEngine::getGPSLatitudeNumber(), Digikam::MetaEngine::getGPSLongitudeNumber(), Digikam::MetaEngine::setGPSInfo(), Digikam::ItemPosition::setLatitude(), and Digikam::ItemPosition::setLongitude().

◆ convertFromGPSCoordinateString() [2/2]

bool Digikam::MetaEngine::convertFromGPSCoordinateString ( const QString &  gpsString,
double *const  coordinate 
)
staticinherited

Convert a GPSCoordinate string as defined by XMP to a double floating point number in degrees where the sign determines the direction ref (North + / South - ; East + / West -). Returns true if the conversion was successful.

◆ convertToGPSCoordinateString() [1/2]

QString Digikam::MetaEngine::convertToGPSCoordinateString ( const bool  isLatitude,
double  coordinate 
)
staticinherited

Converts a GPS position stored as double floating point number in degrees to the form described as GPSCoordinate in the XMP specification.

◆ convertToGPSCoordinateString() [2/2]

QString Digikam::MetaEngine::convertToGPSCoordinateString ( const long int  numeratorDegrees,
const long int  denominatorDegrees,
const long int  numeratorMinutes,
const long int  denominatorMinutes,
const long int  numeratorSeconds,
const long int  denominatorSeconds,
const char  directionReference 
)
staticinherited

Converts a GPS position stored as rationals in Exif to the form described as GPSCoordinate in the XMP specification, either in the from "256,45,34N" or "256,45.566667N"

Precision: A second at sea level measures 30m for our purposes, a minute 1800m. (for more details, see https://en.wikipedia.org/wiki/Geographic_coordinate_system) This means with a decimal precision of 8 for minutes we get +/-0,018mm. (if I calculated correctly)

Referenced by Digikam::MetaEngine::getGPSLatitudeString(), Digikam::MetaEngine::getGPSLongitudeString(), Digikam::MetaEngine::setGPSInfo(), Digikam::ItemPosition::setLatitude(), and Digikam::ItemPosition::setLongitude().

◆ convertToRational()

void Digikam::MetaEngine::convertToRational ( const double  number,
long int *const  numerator,
long int *const  denominator,
const int  rounding 
)
staticinherited

This method converts 'number' to a rational value, returned in the 'numerator' and 'denominator' parameters. Set the precision using 'rounding' parameter. Use this method if you want to retrieve a most exact rational for a number without further properties, without any requirements to the denominator.

Referenced by DigikamGenericMetadataEditPlugin::EXIFAdjust::applyMetadata(), DigikamGenericMetadataEditPlugin::EXIFDevice::applyMetadata(), DigikamGenericMetadataEditPlugin::EXIFLens::applyMetadata(), DigikamGenericMetadataEditPlugin::EXIFLight::applyMetadata(), Digikam::MetaEngine::convertToRationalSmallDenominator(), loadUsingRawEngine(), Digikam::MetaEngine::setExifTagVariant(), and Digikam::MetaEngine::setGPSInfo().

◆ convertToRationalSmallDenominator()

void Digikam::MetaEngine::convertToRationalSmallDenominator ( const double  number,
long int *const  numerator,
long int *const  denominator 
)
staticinherited

This method convert a 'number' to a rational value, returned in 'numerator' and 'denominator' parameters. This method will be able to retrieve a rational number from a double - if you constructed your double with 1.0 / 4786.0, this method will retrieve 1 / 4786. If your number is not expected to be rational, use the method above which is just as exact with rounding = 4 and more exact with rounding > 4.

References Digikam::MetaEngine::convertToRational(), and value.

Referenced by Digikam::MetaEngine::createExifUserStringFromValue(), loadUsingRawEngine(), Digikam::MetaEngine::setExifTagVariant(), and Digikam::setExifXmpTagDataVariant().

◆ convertToUserPresentableNumbers() [1/2]

void Digikam::MetaEngine::convertToUserPresentableNumbers ( const bool  isLatitude,
double  coordinate,
int *const  degrees,
int *const  minutes,
double *const  seconds,
char *const  directionReference 
)
staticinherited

Converts a double floating point number to user presentable numbers, integer degrees and minutes and double floating point seconds, and a direction reference ('N' or 'S', 'E' or 'W'). The method needs to know for the direction reference if the latitude or the longitude is meant by the double parameter.

◆ convertToUserPresentableNumbers() [2/2]

bool Digikam::MetaEngine::convertToUserPresentableNumbers ( const QString &  coordinate,
int *const  degrees,
int *const  minutes,
double *const  seconds,
char *const  directionReference 
)
staticinherited

Converts a GPSCoordinate string to user presentable numbers, integer degrees and minutes and double floating point seconds, and a direction reference ('N' or 'S', 'E' or 'W')

Referenced by Digikam::ItemPosition::latitudeUserPresentableNumbers(), Digikam::ItemPosition::longitudeUserPresentableNumbers(), and valueToString().

◆ countryCodeMap()

DMetadata::CountryCodeMap Digikam::DMetadata::countryCodeMap ( )
static

◆ createExifUserStringFromValue()

QString Digikam::MetaEngine::createExifUserStringFromValue ( const char *  exifTagName,
const QVariant &  val,
bool  escapeCR = true 
)
inherited

Takes a QVariant value as it could have been retrieved by getExifTagVariant with the given exifTagName, and returns its value properly converted to a string (including translations from Exiv2). This is equivalent to calling getExifTagString directly. If escapeCR is true CR characters will be removed from the result.

References Digikam::MetaEngine::convertToRationalSmallDenominator(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ data()

◆ detectLanguageAlt()

QString Digikam::MetaEngine::detectLanguageAlt ( const QString &  value,
QString &  lang 
)
staticinherited

Language Alternative autodetection. Return a QString without language alternative header. Header is saved into 'lang'. If no language alternative is founf, value is returned as well and 'lang' is set to a null string.

References value.

Referenced by Digikam::MetaEngine::getXmpTagsDataList(), and Digikam::MetaEngine::getXmpTagStringLangAlt().

◆ Exiv2Version()

QString Digikam::MetaEngine::Exiv2Version ( )
staticinherited

Return a string version of Exiv2 release in format "major.minor.patch"

Referenced by Digikam::LibsInfoDlg::LibsInfoDlg().

◆ exportChanges()

bool Digikam::MetaEngine::exportChanges ( const QString &  exvTmpFile,
QStringList &  removedTags 
) const
inherited

List changed tags compared to original file contents and export result to a temporary EXV file container. 'exvTmpFile' is the path to the temporary EXV container to create. 'removedTags' is populated with the list of tags removed.

References AutoPtr, Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::getExifTagData(), Digikam::MetaEngine::getFilePath(), Digikam::MetaEngine::getIptcTagData(), Digikam::MetaEngine::getXmpTagVariant(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getACDSeeTagsPath()

bool Digikam::DMetadata::getACDSeeTagsPath ( QStringList &  tagsPath) const

◆ getCameraSerialNumber()

QString Digikam::DMetadata::getCameraSerialNumber ( ) const

Return a string with Camera serial number.

References Digikam::MetaEngine::getExifTagString(), and Digikam::MetaEngine::getXmpTagString().

◆ getComments()

QByteArray Digikam::MetaEngine::getComments ( ) const
inherited

Return a Qt byte array copy of Comments container get from current item. Comments are JFIF section of JPEG images. Look Exiv2 API for more information. Return a null Qt byte array if there is no Comments metadata in memory.

References Digikam::MetaEngine::Private::itemComments().

◆ getCommentsDecoded()

QString Digikam::MetaEngine::getCommentsDecoded ( ) const
inherited

Return a Qt string object of Comments from current item decoded using the 'detectEncodingAndDecode()' method. Return a null string if there is no Comments metadata available.

References Digikam::MetaEngine::Private::detectEncodingAndDecode(), and Digikam::MetaEngine::Private::itemComments().

Referenced by getItemComments(), and getMetadataField().

◆ getCopyrightInformation()

◆ getCreatorContactInfo()

◆ getDigitizationDateTime()

QDateTime Digikam::MetaEngine::getDigitizationDateTime ( bool  fallbackToCreationTime = false) const
inherited

Return the digitization time stamp of the item. First Exif information is checked, then IPTC. If no digitization time stamp is found, getItemDateTime() is called if fallbackToCreationTime is true, or a null QDateTime is returned if fallbackToCreationTime is false.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::getItemDateTime(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by getMetadataField(), and Digikam::DNGWriter::Private::storeExif().

◆ getExifComment()

QString Digikam::MetaEngine::getExifComment ( bool  readDescription = true) const
inherited

◆ getExifEncoded()

QByteArray Digikam::MetaEngine::getExifEncoded ( bool  addExifHeader = false) const
inherited

Returns the exif data encoded to a QByteArray in a form suitable for storage in a JPEG image. Note that this encoding is a lossy operation.

Set true 'addExifHeader' parameter to add an Exif header to Exif metadata. Returns a null Qt byte array if there is no Exif metadata in memory.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getExifTagData()

QByteArray Digikam::MetaEngine::getExifTagData ( const char *  exifTagName) const
inherited

◆ getExifTagDescription()

QString Digikam::MetaEngine::getExifTagDescription ( const char *  exifTagName)
inherited

Return the Exif Tag description or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getExifTagLong() [1/2]

◆ getExifTagLong() [2/2]

bool Digikam::MetaEngine::getExifTagLong ( const char *  exifTagName,
long &  val,
int  component 
) const
inherited

Get an Exif tag content like a long value. Return true if Exif tag be found.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getExifTagRational()

bool Digikam::MetaEngine::getExifTagRational ( const char *  exifTagName,
long int &  num,
long int &  den,
int  component = 0 
) const
inherited

◆ getExifTagsDataList()

MetaEngine::MetaDataMap Digikam::MetaEngine::getExifTagsDataList ( const QStringList &  exifKeysFilter = QStringList(),
bool  invertSelection = false,
bool  extractBinary = true 
) const
inherited

Return a map of Exif tags name/value found in metadata sorted by Exif keys given by 'exifKeysFilter'.

'exifKeysFilter' is a QStringList of Exif keys. For example, if you use the string list given below:

"Iop" "Thumbnail" "Image" "Photo"

List can be empty to not filter output.

... this method will return a map of all Exif tags which :

  • include "Iop", or "Thumbnail", or "Image", or "Photo" in the Exif tag keys if 'inverSelection' is false.
  • not include "Iop", or "Thumbnail", or "Image", or "Photo" in the Exif tag keys if 'inverSelection' is true. if 'extractBinary" is true, tags with undefined types of data are extracted (default), else contents is replaced by "Binary data ... bytes". Take a care as large binary data as original RAW data from DNG container can be huge and listing Exif tags from GUI can take a while.

References Digikam::MetaEngine::Private::convertCommentValue(), Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by removeExifTags().

◆ getExifTagString()

◆ getExifTagTitle()

QString Digikam::MetaEngine::getExifTagTitle ( const char *  exifTagName)
inherited

Return the Exif Tag title or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getExifTagVariant()

QVariant Digikam::MetaEngine::getExifTagVariant ( const char *  exifTagName,
bool  rationalAsListOfInts = true,
bool  escapeCR = true,
int  component = 0 
) const
inherited

Get an Exif tags content as a QVariant. Returns a null QVariant if the Exif tag cannot be found. For string and integer values the matching QVariant types will be used, for date and time values QVariant::DateTime. Rationals will be returned as QVariant::List with two integer QVariants (numerator, denominator) if rationalAsListOfInts is true, as double if rationalAsListOfInts is false. An exif tag of numerical type may contain more than one value; set component to the desired index.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getExifThumbnail()

QImage Digikam::MetaEngine::getExifThumbnail ( bool  fixOrientation) const
inherited

Return a QImage copy of Exif thumbnail image. Return a null image if thumbnail cannot be found. The 'fixOrientation' parameter will rotate automatically the thumbnail if Exif orientation tags information are attached with thumbnail.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::rotateExifQImage(), and Digikam::s_metaEngineMutex.

Referenced by Digikam::JPEGUtils::JpegRotator::updateMetadata().

◆ getFilePath()

◆ getGPSAltitude()

bool Digikam::MetaEngine::getGPSAltitude ( double *const  altitude) const
inherited

◆ getGPSInfo()

bool Digikam::MetaEngine::getGPSInfo ( double &  altitude,
double &  latitude,
double &  longitude 
) const
inherited

◆ getGPSLatitudeNumber()

bool Digikam::MetaEngine::getGPSLatitudeNumber ( double *const  latitude) const
inherited

Get GPS location information set in the item, as a double floating point number as in degrees where the sign determines the direction ref (North + / South - ; East + / West -). Returns true if the information is available.

References Digikam::MetaEngine::convertFromGPSCoordinateString(), Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::getExifTagData(), Digikam::MetaEngine::getXmpTagString(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by Digikam::MetaEngine::getGPSInfo(), Digikam::MetaEngine::getGPSLatitudeString(), getMetadataField(), and Digikam::ItemPropertiesGPSTab::setMetadata().

◆ getGPSLatitudeString()

QString Digikam::MetaEngine::getGPSLatitudeString ( ) const
inherited

Get GPS location information set in the item, in the GPSCoordinate format as described in the XMP specification. Returns a null string in the information cannot be found.

References Digikam::MetaEngine::convertToGPSCoordinateString(), and Digikam::MetaEngine::getGPSLatitudeNumber().

Referenced by getMetadataField().

◆ getGPSLongitudeNumber()

◆ getGPSLongitudeString()

QString Digikam::MetaEngine::getGPSLongitudeString ( ) const
inherited

◆ getIccProfile()

IccProfile Digikam::DMetadata::getIccProfile ( ) const

Reads an IccProfile that is described or embedded in the metadata. This method does not retrieve profiles embedded in the image but from the Exif metadata, e.g. embedded profiles in JPEG images. Returns a null profile if no profile is found.

References Digikam::IccProfile::adobeRGB(), Digikam::MetaEngine::data(), Digikam::MetaEngine::getExifTagData(), Digikam::MetaEngine::getItemColorWorkSpace(), Digikam::IccProfile::sRGB(), Digikam::MetaEngine::WORKSPACE_ADOBERGB, and Digikam::MetaEngine::WORKSPACE_SRGB.

◆ getIptc()

QByteArray Digikam::MetaEngine::getIptc ( bool  addIrbHeader = false) const
inherited

Return a Qt byte array copy of Iptc container get from current item. Set true 'addIrbHeader' parameter to add an Irb header to Iptc metadata. Return a null Qt byte array if there is no Iptc metadata in memory.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getIptcCoreLocation()

◆ getIptcCoreSubjects()

QStringList Digikam::DMetadata::getIptcCoreSubjects ( ) const

◆ getIptcKeywords()

QStringList Digikam::MetaEngine::getIptcKeywords ( ) const
inherited

◆ getIptcSubCategories()

QStringList Digikam::MetaEngine::getIptcSubCategories ( ) const
inherited

◆ getIptcSubjects()

◆ getIptcTagData()

QByteArray Digikam::MetaEngine::getIptcTagData ( const char *  iptcTagName) const
inherited

◆ getIptcTagDescription()

QString Digikam::MetaEngine::getIptcTagDescription ( const char *  iptcTagName)
inherited

Return the Iptc Tag description or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getIptcTagsDataList()

MetaEngine::MetaDataMap Digikam::MetaEngine::getIptcTagsDataList ( const QStringList &  iptcKeysFilter = QStringList(),
bool  invertSelection = false 
) const
inherited

Return a map of Iptc tags name/value found in metadata sorted by Iptc keys given by 'iptcKeysFilter'.

'iptcKeysFilter' is a QStringList of Iptc keys. For example, if you use the string list given below:

"Envelope" "Application2"

List can be empty to not filter output.

... this method will return a map of all Iptc tags which :

  • include "Envelope", or "Application2" in the Iptc tag keys if 'inverSelection' is false.
  • not include "Envelope", or "Application2" in the Iptc tag keys if 'inverSelection' is true.

References Digikam::MetaEngine::Private::extractIptcTagString(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and value.

Referenced by removeIptcTags().

◆ getIptcTagsList()

MetaEngine::TagsMap Digikam::MetaEngine::getIptcTagsList ( ) const
inherited

Return a map of all standard Iptc tags supported by Exiv2.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getIptcTagsStringList()

QStringList Digikam::MetaEngine::getIptcTagsStringList ( const char *  iptcTagName,
bool  escapeCR = true 
) const
inherited

Returns a strings list with of multiple Iptc tags from the item. Return an empty list if no tag is found. Get the values of all IPTC tags with the given tag name in a string list. (In Iptc, there can be multiple tags with the same name) If the 'escapeCR' parameter is true, the CR characters will be removed. If no tag can be found an empty list is returned.

References Digikam::MetaEngine::Private::extractIptcTagString(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by DigikamGenericMetadataEditPlugin::IPTCContent::readMetadata(), DigikamGenericMetadataEditPlugin::IPTCCredits::readMetadata(), DigikamGenericMetadataEditPlugin::IPTCOrigin::readMetadata(), DigikamGenericMetadataEditPlugin::IPTCProperties::readMetadata(), and setMetadataTemplate().

◆ getIptcTagString()

◆ getIptcTagTitle()

QString Digikam::MetaEngine::getIptcTagTitle ( const char *  iptcTagName)
inherited

Return the Iptc Tag title or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getItemColorLabel()

◆ getItemColorWorkSpace()

MetaEngine::ImageColorWorkSpace Digikam::MetaEngine::getItemColorWorkSpace ( ) const
inherited

Return the item color-space set in Exif metadata. The makernotes of item are also parsed to get this information. See ImageColorWorkSpace values for details.

References Digikam::MetaEngine::getExifTagLong(), Digikam::MetaEngine::getExifTagString(), Digikam::MetaEngine::getXmpTagVariant(), Digikam::MetaEngine::WORKSPACE_ADOBERGB, Digikam::MetaEngine::WORKSPACE_SRGB, Digikam::MetaEngine::WORKSPACE_UNCALIBRATED, and Digikam::MetaEngine::WORKSPACE_UNSPECIFIED.

Referenced by getIccProfile().

◆ getItemComments()

◆ getItemDateTime()

◆ getItemDimensions()

QSize Digikam::MetaEngine::getItemDimensions ( ) const
inherited

◆ getItemFacesMap()

bool Digikam::DMetadata::getItemFacesMap ( QMultiMap< QString, QVariant > &  facesPath) const

Get Images Face Map based on tags stored in Picassa/Metadatagroup format.

Read face tags only if Exiv2 can write them, otherwise garbage tags will be generated on image transformation

References Digikam::MetaEngine::getXmpTagString().

Referenced by getMetadataField(), and Digikam::ItemScanner::scanFaces().

◆ getItemHistory()

QString Digikam::DMetadata::getItemHistory ( ) const

◆ getItemOrientation()

◆ getItemPickLabel()

◆ getItemPreview()

bool Digikam::MetaEngine::getItemPreview ( QImage &  preview) const
inherited

◆ getItemRating()

◆ getItemTagsPath()

◆ getItemTitles()

◆ getItemUniqueId()

◆ getLensDescription()

QString Digikam::DMetadata::getLensDescription ( ) const

Return a string with Lens mounted on the front of camera. There no standard Exif tag for Lens information. Camera makernotes and Xmp tags are parsed. Take a care : lens information are not standardized and string content is not homogeneous between camera model/maker.

< Canon Cameras Makernote.

< Canon Cameras Makernote.

< Alternative Canon Cameras Makernote.

< Nikon Cameras Makernote.

< Nikon Cameras Makernote.

< Nikon Cameras Makernote.

< Minolta Cameras Makernote.

< Sony Cameras Makernote.

< Sony Cameras Makernote.

< Sony Cameras Makernote.

< Pentax Cameras Makernote.

< Pentax Cameras Makernote.

< Panasonic Cameras Makernote.

< Panasonic Cameras Makernote.

< Sigma Cameras Makernote.

< Samsung Cameras Makernote.

< Non-standard Exif tag set by Camera Raw.

< Olympus Cameras Makernote.

< Olympus Cameras Makernote.

References Digikam::MetaEngine::getExifTagString(), and Digikam::MetaEngine::getXmpTagString().

Referenced by getMetadataField(), and getPhotographInformation().

◆ getMakernoteTagsList()

MetaEngine::TagsMap Digikam::MetaEngine::getMakernoteTagsList ( ) const
inherited

Return a map of all non-standard Exif tags (makernotes) supported by Exiv2.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getMetadataField()

QVariant Digikam::DMetadata::getMetadataField ( MetadataInfo::Field  field) const

Returns the requested metadata field as a QVariant. See metadatainfo.h for a specification of the format of the QVariant.

References Digikam::MetadataInfo::Altitude, Digikam::MetadataInfo::Aperture, apexApertureToFNumber(), apexShutterSpeedToExposureTime(), Digikam::MetadataInfo::AspectRatio, Digikam::MetadataInfo::AudioBitRate, Digikam::MetadataInfo::AudioChannelType, Digikam::MetadataInfo::AudioCodec, Digikam::MetadataInfo::Comment, Digikam::MetadataInfo::CommentExif, Digikam::MetadataInfo::CommentIptc, Digikam::MetadataInfo::CommentJfif, Digikam::MetadataInfo::CreationDate, Digikam::MetadataInfo::Description, Digikam::MetadataInfo::DescriptionWriter, Digikam::MetadataInfo::DigitizationDate, Digikam::MetadataInfo::Duration, Digikam::MetadataInfo::ExposureMode, Digikam::MetadataInfo::ExposureProgram, Digikam::MetadataInfo::ExposureTime, Digikam::MetadataInfo::Faces, Digikam::MetadataInfo::FlashMode, Digikam::MetadataInfo::FocalLength, Digikam::MetadataInfo::FocalLengthIn35mm, Digikam::MetadataInfo::FrameRate, Digikam::MetaEngine::getCommentsDecoded(), getCreatorContactInfo(), Digikam::MetaEngine::getDigitizationDateTime(), Digikam::MetaEngine::getExifComment(), Digikam::MetaEngine::getGPSAltitude(), Digikam::MetaEngine::getGPSLatitudeNumber(), Digikam::MetaEngine::getGPSLatitudeString(), Digikam::MetaEngine::getGPSLongitudeNumber(), Digikam::MetaEngine::getGPSLongitudeString(), getIptcCoreLocation(), getIptcCoreSubjects(), getItemComments(), Digikam::MetaEngine::getItemDateTime(), getItemFacesMap(), Digikam::MetaEngine::getItemOrientation(), getItemRating(), getItemTagsPath(), getItemTitles(), getLensDescription(), Digikam::MetaEngine::getXmpTagString(), Digikam::MetaEngine::getXmpTagVariant(), Digikam::MetadataInfo::Headline, Digikam::MetadataInfo::IptcCoreCity, Digikam::MetadataInfo::IptcCoreContactInfo, Digikam::MetadataInfo::IptcCoreContactInfoAddress, Digikam::MetadataInfo::IptcCoreContactInfoCity, Digikam::MetadataInfo::IptcCoreContactInfoCountry, Digikam::MetadataInfo::IptcCoreContactInfoEmail, Digikam::MetadataInfo::IptcCoreContactInfoPhone, Digikam::MetadataInfo::IptcCoreContactInfoPostalCode, Digikam::MetadataInfo::IptcCoreContactInfoProvinceState, Digikam::MetadataInfo::IptcCoreContactInfoWebUrl, Digikam::MetadataInfo::IptcCoreCopyrightNotice, Digikam::MetadataInfo::IptcCoreCountry, Digikam::MetadataInfo::IptcCoreCountryCode, Digikam::MetadataInfo::IptcCoreCreator, Digikam::MetadataInfo::IptcCoreCreatorJobTitle, Digikam::MetadataInfo::IptcCoreInstructions, Digikam::MetadataInfo::IptcCoreIntellectualGenre, Digikam::MetadataInfo::IptcCoreJobID, Digikam::MetadataInfo::IptcCoreLocation, Digikam::MetadataInfo::IptcCoreLocationInfo, Digikam::MetadataInfo::IptcCoreProvider, Digikam::MetadataInfo::IptcCoreProvinceState, Digikam::MetadataInfo::IptcCoreRightsUsageTerms, Digikam::MetadataInfo::IptcCoreScene, Digikam::MetadataInfo::IptcCoreSource, Digikam::MetadataInfo::IptcCoreSubjectCode, Digikam::IptcCoreContactInfo::isNull(), Digikam::MetadataInfo::Keywords, Digikam::MetadataInfo::Latitude, Digikam::MetadataInfo::LatitudeNumber, Digikam::MetadataInfo::Lens, Digikam::RedEye::location(), Digikam::MetadataInfo::Longitude, Digikam::MetadataInfo::LongitudeNumber, Digikam::MetadataInfo::Make, Digikam::MetadataInfo::MeteringMode, Digikam::MetadataInfo::Model, Digikam::MetadataInfo::Orientation, Digikam::MetadataInfo::PositionAccuracy, Digikam::MetadataInfo::PositionDescription, Digikam::MetadataInfo::PositionOrientation, Digikam::MetadataInfo::PositionRoll, Digikam::MetadataInfo::PositionTilt, Digikam::MetadataInfo::Rating, Digikam::MetadataInfo::Sensitivity, Digikam::MetadataInfo::SubjectDistance, Digikam::MetadataInfo::SubjectDistanceCategory, Digikam::MetadataInfo::Title, Digikam::MetadataInfo::VideoBitDepth, Digikam::MetadataInfo::VideoCodec, VIDEOCOLORMODEL_BT601, VIDEOCOLORMODEL_BT709, VIDEOCOLORMODEL_OTHER, VIDEOCOLORMODEL_SRGB, Digikam::MetadataInfo::VideoColorSpace, Digikam::MetadataInfo::VideoHeight, Digikam::MetadataInfo::VideoWidth, Digikam::MetadataInfo::WhiteBalance, and Digikam::MetadataInfo::WhiteBalanceColorTemperature.

Referenced by getItemComments(), getItemTitles(), getMetadataFields(), getVideoInformation(), Digikam::ItemScanner::scanTags(), and Digikam::ItemScanner::scanVideoInformation().

◆ getMetadataFields()

◆ getMetadataTemplate()

◆ getMimeType()

QString Digikam::MetaEngine::getMimeType ( ) const
inherited

Returns the mime type of this item. The information is read from the file; see the docs for getPixelSize() to know when it is available.

References Digikam::MetaEngine::Private::mimeType.

◆ getMSecsInfo()

int Digikam::DMetadata::getMSecsInfo ( ) const

Returns millisecond time-stamp from Exif tags or 0 if not found.

References mSecTimeStamp().

Referenced by Digikam::DKCamera::fillItemInfoFromMetadata().

◆ getPhotographInformation()

◆ getPixelSize()

QSize Digikam::MetaEngine::getPixelSize ( ) const
inherited

Returns the pixel size of the current item. This information is read from the file, not from the metadata. The returned QSize is valid if the MetaEngine object was constructed by reading a file or item data; the information is not available when the object was created from MetaEngineData. Note that in the Exif or XMP metadata, there may be fields describing the item size. These fields are not accessed by this method. When replacing the metadata with setData(), the metadata may change; this information always keeps referring to the file it was initially read from.

References Digikam::MetaEngine::Private::pixelSize.

Referenced by DigikamGenericPanoramaPlugin::CreatePreviewTask::run(), DigikamGenericPanoramaPlugin::CreatePtoTask::run(), and Digikam::ImportItemPropertiesTab::setCurrentItem().

◆ getStdExifTagsList()

MetaEngine::TagsMap Digikam::MetaEngine::getStdExifTagsList ( ) const
inherited

Return a map of all standard Exif tags supported by Exiv2.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getVideoInformation()

◆ getXmp()

QByteArray Digikam::MetaEngine::getXmp ( ) const
inherited

Return a Qt byte array copy of XMp container get from current item. Return a null Qt byte array if there is no Xmp metadata in memory.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getXmpKeywords()

QStringList Digikam::DMetadata::getXmpKeywords ( ) const

Return a strings list of Xmp keywords from image. Return an empty list if no keyword are set.

References Digikam::MetaEngine::getXmpTagStringBag().

Referenced by DigikamGenericMetadataEditPlugin::XMPKeywords::readMetadata().

◆ getXmpSubCategories()

QStringList Digikam::DMetadata::getXmpSubCategories ( ) const

Return a strings list of Xmp sub-categories from image. Return an empty list if no sub-category are set.

References Digikam::MetaEngine::getXmpTagStringBag().

Referenced by DigikamGenericMetadataEditPlugin::XMPCategories::readMetadata().

◆ getXmpSubjects()

QStringList Digikam::DMetadata::getXmpSubjects ( ) const

Return a strings list of Xmp subjects from image. Return an empty list if no subject are set.

References Digikam::MetaEngine::getXmpTagStringBag().

Referenced by getIptcCoreSubjects(), and DigikamGenericMetadataEditPlugin::XMPSubjects::readMetadata().

◆ getXmpTagDescription()

QString Digikam::MetaEngine::getXmpTagDescription ( const char *  xmpTagName)
inherited

Return the Xmp Tag description or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError().

◆ getXmpTagsDataList()

MetaEngine::MetaDataMap Digikam::MetaEngine::getXmpTagsDataList ( const QStringList &  xmpKeysFilter = QStringList(),
bool  invertSelection = false 
) const
inherited

Return a map of Xmp tags name/value found in metadata sorted by Xmp keys given by 'xmpKeysFilter'.

'xmpKeysFilter' is a QStringList of Xmp keys. For example, if you use the string list given below:

"dc" // Dubling Core schema. "xmp" // Standard Xmp schema.

List can be empty to not filter output.

... this method will return a map of all Xmp tags which :

  • include "dc", or "xmp" in the Xmp tag keys if 'inverSelection' is false.
  • not include "dc", or "xmp" in the Xmp tag keys if 'inverSelection' is true.

References Digikam::MetaEngine::detectLanguageAlt(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and value.

Referenced by removeXmpTags().

◆ getXmpTagsList()

MetaEngine::TagsMap Digikam::MetaEngine::getXmpTagsList ( ) const
inherited

Return a map of all standard Xmp tags supported by Exiv2.

References Digikam::MetaEngine::Private::getXMPTagsListFromPrefix().

◆ getXmpTagString()

◆ getXmpTagStringBag()

QStringList Digikam::MetaEngine::getXmpTagStringBag ( const char *  xmpTagName,
bool  escapeCR 
) const
inherited

◆ getXmpTagStringLangAlt()

QString Digikam::MetaEngine::getXmpTagStringLangAlt ( const char *  xmpTagName,
const QString &  langAlt,
bool  escapeCR 
) const
inherited

Get a Xmp tag content like a string set with an alternative language header 'langAlt' (like "fr-FR" for French - RFC3066 notation) If 'escapeCR' parameter is true, the CR characters will be removed. If Xmp tag cannot be found a null string is returned.

References Digikam::MetaEngine::detectLanguageAlt(), and Digikam::MetaEngine::Private::printExiv2ExceptionError().

Referenced by getItemComments().

◆ getXmpTagStringListLangAlt()

MetaEngine::AltLangMap Digikam::MetaEngine::getXmpTagStringListLangAlt ( const char *  xmpTagName,
bool  escapeCR = true 
) const
inherited

Get all redondant Alternative Language Xmp tags content like a map. See AltLangMap class description for details. If 'escapeCR' parameter is true, the CR characters will be removed from strings. If Xmp tag cannot be found a null string list is returned.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and value.

Referenced by getItemComments(), getItemTitles(), DigikamGenericMetadataEditPlugin::XMPContent::readMetadata(), DigikamGenericMetadataEditPlugin::XMPStatus::readMetadata(), and Digikam::MetaEngine::setXmpTagStringLangAlt().

◆ getXmpTagStringSeq()

QStringList Digikam::MetaEngine::getXmpTagStringSeq ( const char *  xmpTagName,
bool  escapeCR = true 
) const
inherited

Get a Xmp tag content like a sequence of strings. If 'escapeCR' parameter is true, the CR characters will be removed from strings. If Xmp tag cannot be found a null string list is returned.

References Digikam::MetaEngine::Private::printExiv2ExceptionError().

Referenced by getItemTagsPath(), DigikamGenericMetadataEditPlugin::XMPCredits::readMetadata(), and DigikamGenericMetadataEditPlugin::XMPStatus::readMetadata().

◆ getXmpTagTitle()

QString Digikam::MetaEngine::getXmpTagTitle ( const char *  xmpTagName)
inherited

Return the Xmp Tag title or a null string.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ getXmpTagVariant()

QVariant Digikam::MetaEngine::getXmpTagVariant ( const char *  xmpTagName,
bool  rationalAsListOfInts = true,
bool  stringEscapeCR = true 
) const
inherited

Get an Xmp tag content as a QVariant. Returns a null QVariant if the Xmp tag cannot be found. For string and integer values the matching QVariant types will be used, for date and time values QVariant::DateTime. Rationals will be returned as QVariant::List with two integer QVariants (numerator, denominator) if rationalAsListOfInts is true, as double if rationalAsListOfInts is false. Arrays (ordered, unordered, alternative) are returned as type StringList. LangAlt values will have type Map (QMap<QString, QVariant>) with the language code as key and the contents as value, of type String.

References Digikam::MetaEngine::Private::printExiv2ExceptionError(), and value.

Referenced by Digikam::MetaEngine::exportChanges(), Digikam::MetaEngine::getItemColorWorkSpace(), and getMetadataField().

◆ hasComments()

bool Digikam::MetaEngine::hasComments ( ) const
inherited

Return 'true' if metadata container in memory as Comments.

References Digikam::MetaEngine::Private::itemComments().

Referenced by Digikam::MetaEngine::isEmpty().

◆ hasExif()

bool Digikam::MetaEngine::hasExif ( ) const
inherited

◆ hasIptc()

bool Digikam::MetaEngine::hasIptc ( ) const
inherited

Return 'true' if metadata container in memory as Iptc.

References Digikam::MetaEngine::Private::iptcMetadata().

Referenced by getItemComments(), getItemRating(), getItemTitles(), and Digikam::MetaEngine::isEmpty().

◆ hasItemHistoryTag()

bool Digikam::DMetadata::hasItemHistoryTag ( ) const

◆ hasSidecar()

bool Digikam::MetaEngine::hasSidecar ( const QString &  path)
staticinherited

◆ hasXmp()

bool Digikam::MetaEngine::hasXmp ( ) const
inherited

◆ initializeExiv2()

bool Digikam::MetaEngine::initializeExiv2 ( )
staticinherited

Return true if Exiv2 library initialization is done properly. This method must be called before using libMetaEngine with multithreading. It initialize several non re-entrancy code from Adobe XMP SDK, and register a function to cleanup automatically all XMP SDK memory allocation. See Bug #166424 for details.

References Digikam::MetaEngine::registerXmpNameSpace(), and Digikam::s_metaEngineSupportBmff.

◆ initializeGPSInfo()

bool Digikam::MetaEngine::initializeGPSInfo ( )
inherited

◆ isEmpty()

◆ load()

◆ loadFromData()

bool Digikam::MetaEngine::loadFromData ( const QByteArray &  imgData)
inherited

◆ loadFromSidecarAndMerge()

bool Digikam::MetaEngine::loadFromSidecarAndMerge ( const QString &  filePath)
inherited

◆ loadUsingFFmpeg()

◆ loadUsingRawEngine()

◆ metadataWritingMode()

int Digikam::MetaEngine::metadataWritingMode ( ) const
inherited

Return the metadata writing mode.

Returns
Metadata writing mode as defined by the MetadataWritingMode enum.
See also
MetadataWritingMode, setMetadataWritingMode()

References Digikam::MetaEngine::Private::metadataWritingMode.

Referenced by Digikam::MetaEngine::Private::copyPrivateData().

◆ mSecTimeStamp()

bool Digikam::DMetadata::mSecTimeStamp ( const char *const  exifTagName,
int &  ms 
) const

Extract milliseconds time-stamp of photo from an Exif tag and store it to 'ms'. Returns true if data are extracted.

References Digikam::MetaEngine::getExifTagString().

Referenced by getMSecsInfo().

◆ possibleValuesForEnumField()

QMap< int, QString > Digikam::DMetadata::possibleValuesForEnumField ( MetadataInfo::Field  field)
static

Returns a map of possible enum values and their user-presentable, i18n'ed representation. Valid fields are those which are described as "enum from" or "bit mask from" in metadatainfo.h.

Int, enum from libMetaEngine

Int, enum from Exif

Int, enum from Exif

Int, enum from Exif

Int, enum from Exif

int, enum from Exif

Int, bit mask from Exif

References Digikam::MetadataInfo::ExposureMode, Digikam::MetadataInfo::ExposureProgram, Digikam::MetadataInfo::FlashMode, Digikam::MetadataInfo::MeteringMode, Digikam::MetadataInfo::Orientation, Digikam::MetaEngine::ORIENTATION_ROT_270, Digikam::MetaEngine::ORIENTATION_UNSPECIFIED, Digikam::MetadataInfo::SubjectDistanceCategory, valueToString(), and Digikam::MetadataInfo::WhiteBalance.

Referenced by Digikam::SearchField::createField().

◆ registerMetadataSettings()

void Digikam::DMetadata::registerMetadataSettings ( )

◆ registerXmpNameSpace()

bool Digikam::MetaEngine::registerXmpNameSpace ( const QString &  uri,
const QString &  prefix 
)
staticinherited

Register a namespace which Exiv2 doesn't know yet. This is only needed when new Xmp properties are added manually. 'uri' is the namespace url and 'prefix' the string used to construct new Xmp key (ex. "Xmp.digiKam.tagList"). NOTE: If the Xmp metadata is read from an item, namespaces are decoded and registered by Exiv2 at the same time.

References prefix, and Digikam::MetaEngine::Private::printExiv2ExceptionError().

Referenced by Digikam::MetaEngine::initializeExiv2().

◆ removeExifColorSpace()

bool Digikam::DMetadata::removeExifColorSpace ( ) const

Remove the Exif color space identification from the image.

References Digikam::MetaEngine::removeExifTag(), and Digikam::MetaEngine::removeXmpTag().

Referenced by setIccProfile().

◆ removeExifTag()

◆ removeExifTags()

bool Digikam::DMetadata::removeExifTags ( const QStringList &  tagFilters)

◆ removeExifThumbnail()

bool Digikam::MetaEngine::removeExifThumbnail ( ) const
inherited

◆ removeFromXmpTagStringBag()

bool Digikam::DMetadata::removeFromXmpTagStringBag ( const char *const  xmpTagName,
const QStringList &  entriesToRemove 
) const

Remove those Xmp tag entries that are listed in entriesToRemove from the entries in metadata. Return true if tag entries are no longer contained in metadata. All other entries are preserved.

References Digikam::MetaEngine::getXmpTagStringBag(), and Digikam::MetaEngine::setXmpTagStringBag().

Referenced by removeXmpKeywords(), removeXmpSubCategories(), and removeXmpSubjects().

◆ removeGPSInfo()

bool Digikam::MetaEngine::removeGPSInfo ( )
inherited

Remove all Exif tags relevant of GPS location information. Return true if all tags have been removed successfully in metadata.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::removeXmpTag(), and Digikam::s_metaEngineMutex.

Referenced by Digikam::MetaEngine::setGPSInfo(), and Digikam::MetadataHub::write().

◆ removeIptcTag()

◆ removeIptcTags()

bool Digikam::DMetadata::removeIptcTags ( const QStringList &  tagFilters)

◆ removeItemFacesMap()

bool Digikam::DMetadata::removeItemFacesMap ( ) const

Remove Images Face Map tags from Picassa/Metadatagroup format.

References Digikam::MetaEngine::removeXmpTag().

Referenced by setItemFacesMap().

◆ removeMetadataTemplate()

bool Digikam::DMetadata::removeMetadataTemplate ( ) const

◆ removeXmpKeywords()

bool Digikam::DMetadata::removeXmpKeywords ( const QStringList &  keywordsToRemove)

Remove those Xmp keywords that are listed in keywordsToRemove from the keywords in metadata. Return true if keywords are no longer contained in metadata.

References removeFromXmpTagStringBag().

◆ removeXmpSubCategories()

bool Digikam::DMetadata::removeXmpSubCategories ( const QStringList &  categoriesToRemove)

Remove those Xmp sub-categories that are listed in categoriesToRemove from the sub-categories in metadata. Return true if subjects are no longer contained in metadata.

References removeFromXmpTagStringBag().

◆ removeXmpSubjects()

bool Digikam::DMetadata::removeXmpSubjects ( const QStringList &  subjectsToRemove)

Remove those Xmp subjects that are listed in subjectsToRemove from the subjects in metadata. Return true if subjects are no longer contained in metadata.

References removeFromXmpTagStringBag().

◆ removeXmpTag()

◆ removeXmpTags()

bool Digikam::DMetadata::removeXmpTags ( const QStringList &  tagFilters)

◆ rotateExifQImage()

bool Digikam::MetaEngine::rotateExifQImage ( QImage &  image,
ImageOrientation  orientation 
) const
inherited

◆ save()

bool Digikam::DMetadata::save ( const QString &  filePath,
bool  setVersion = false 
) const

◆ setACDSeeTagsPath()

bool Digikam::DMetadata::setACDSeeTagsPath ( const QStringList &  tagsPath) const

◆ setComments()

bool Digikam::MetaEngine::setComments ( const QByteArray &  data) const
inherited

◆ setCreatorContactInfo()

◆ setData()

void Digikam::MetaEngine::setData ( const MetaEngineData data)
inherited

◆ setExif()

bool Digikam::MetaEngine::setExif ( const QByteArray &  data) const
inherited

◆ setExifComment()

bool Digikam::MetaEngine::setExifComment ( const QString &  comment,
bool  writeDescription = true 
) const
inherited

◆ setExifTagData()

bool Digikam::MetaEngine::setExifTagData ( const char *  exifTagName,
const QByteArray &  data 
) const
inherited

◆ setExifTagLong()

◆ setExifTagRational()

bool Digikam::MetaEngine::setExifTagRational ( const char *  exifTagName,
long int  num,
long int  den 
) const
inherited

◆ setExifTagString()

◆ setExifTagVariant()

bool Digikam::MetaEngine::setExifTagVariant ( const char *  exifTagName,
const QVariant &  data,
bool  rationalWantSmallDenominator = true 
) const
inherited

Set an Exif tag content using a QVariant. Returns true if tag is set successfully. All types described for the getExifTagVariant() method are supported. Calling with a QVariant of type ByteArray is equivalent to calling setExifTagData. For the meaning of rationalWantSmallDenominator, see the documentation of the convertToRational methods. Setting a value with multiple components is currently not supported.

References Digikam::MetaEngine::convertToRational(), Digikam::MetaEngine::convertToRationalSmallDenominator(), Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::setExifTagData(), Digikam::MetaEngine::setExifTagLong(), Digikam::MetaEngine::setExifTagRational(), and Digikam::MetaEngine::setExifTagString().

Referenced by Digikam::setExifXmpTagDataVariant().

◆ setExifThumbnail()

bool Digikam::MetaEngine::setExifThumbnail ( const QImage &  thumb) const
inherited

Set the Exif Thumbnail image. The thumbnail image must have the right dimensions before. Look Exif specification for details. Return true if thumbnail have been changed in metadata.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::removeExifThumbnail(), and Digikam::s_metaEngineMutex.

Referenced by loadUsingRawEngine(), and Digikam::JPEGUtils::JpegRotator::updateMetadata().

◆ setFilePath()

void Digikam::MetaEngine::setFilePath ( const QString &  path)
inherited

Set the file path of current item.

References Digikam::MetaEngine::Private::filePath.

◆ setGPSInfo() [1/3]

bool Digikam::MetaEngine::setGPSInfo ( const double *const  altitude,
const double  latitude,
const double  longitude 
)
inherited

◆ setGPSInfo() [2/3]

bool Digikam::MetaEngine::setGPSInfo ( const double  altitude,
const double  latitude,
const double  longitude 
)
inherited

Set all GPS location information into item. Return true if all information have been changed in metadata.

Referenced by loadUsingFFmpeg(), loadUsingRawEngine(), Digikam::MetaEngine::setGPSInfo(), and Digikam::MetadataHub::write().

◆ setGPSInfo() [3/3]

bool Digikam::MetaEngine::setGPSInfo ( const double  altitude,
const QString &  latitude,
const QString &  longitude 
)
inherited

Set all GPS location information into item. Return true if all information have been changed in metadata.

References Digikam::MetaEngine::convertFromGPSCoordinateString(), and Digikam::MetaEngine::setGPSInfo().

◆ setIccProfile()

bool Digikam::DMetadata::setIccProfile ( const IccProfile profile)

◆ setImageDateTime()

bool Digikam::MetaEngine::setImageDateTime ( const QDateTime &  dateTime,
bool  setDateTimeDigitized = false 
) const
inherited

Set the Exif and Iptc time stamp. If 'setDateTimeDigitized' parameter is true, the 'Digitalized' time stamp is set, else only 'Created' time stamp is set.

References AutoPtr, Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::getFilePath(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::isEmpty(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by loadUsingFFmpeg(), loadUsingRawEngine(), and Digikam::MetadataHub::write().

◆ setIptc()

bool Digikam::MetaEngine::setIptc ( const QByteArray &  data) const
inherited

◆ setIptcCoreLocation()

bool Digikam::DMetadata::setIptcCoreLocation ( const IptcCoreLocationInfo location) const

◆ setIptcKeywords()

bool Digikam::MetaEngine::setIptcKeywords ( const QStringList &  oldKeywords,
const QStringList &  newKeywords 
) const
inherited

Set Iptc keywords using a list of strings defined by 'newKeywords' parameter. Use 'getImageKeywords()' method to set 'oldKeywords' parameter with existing keywords from item. The method will compare all new keywords with all old keywords to prevent duplicate entries in item. Return true if keywords have been changed in metadata.

References AutoPtr, Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setIptcTagString().

Referenced by DigikamGenericMetadataEditPlugin::IPTCKeywords::applyMetadata(), loadUsingFFmpeg(), and setItemTagsPath().

◆ setIptcSubCategories()

bool Digikam::MetaEngine::setIptcSubCategories ( const QStringList &  oldSubCategories,
const QStringList &  newSubCategories 
) const
inherited

Set Iptc sub-categories using a list of strings defined by 'newSubCategories' parameter. Use 'getImageSubCategories()' method to set 'oldSubCategories' parameter with existing sub-categories from item. The method will compare all new sub-categories with all old sub-categories to prevent duplicate entries in item. Return true if sub-categories have been changed in metadata.

References AutoPtr, Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setIptcTagString().

Referenced by DigikamGenericMetadataEditPlugin::IPTCCategories::applyMetadata(), and loadUsingFFmpeg().

◆ setIptcSubjects()

bool Digikam::MetaEngine::setIptcSubjects ( const QStringList &  oldSubjects,
const QStringList &  newSubjects 
) const
inherited

Set Iptc subjects using a list of strings defined by 'newSubjects' parameter. Use 'getImageSubjects()' method to set 'oldSubjects' parameter with existing subjects from item. The method will compare all new subjects with all old subjects to prevent duplicate entries in item. Return true if subjects have been changed in metadata.

References AutoPtr, Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setIptcTagString().

Referenced by DigikamGenericMetadataEditPlugin::IPTCSubjects::applyMetadata(), and setMetadataTemplate().

◆ setIptcTagData()

bool Digikam::MetaEngine::setIptcTagData ( const char *  iptcTagName,
const QByteArray &  data 
) const
inherited

Set an Iptc tag content using a bytes array. Return true if tag is set successfully.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

◆ setIptcTagsStringList()

bool Digikam::MetaEngine::setIptcTagsStringList ( const char *  iptcTagName,
int  maxSize,
const QStringList &  oldValues,
const QStringList &  newValues 
) const
inherited

◆ setIptcTagString()

◆ setItemColorLabel()

◆ setItemColorWorkSpace()

bool Digikam::MetaEngine::setItemColorWorkSpace ( ImageColorWorkSpace  workspace) const
inherited

Set the Exif color-space tag of item. See ImageColorWorkSpace values for details Return true if work-space have been changed in metadata.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setXmpTagString().

Referenced by loadUsingRawEngine().

◆ setItemComments()

◆ setItemDimensions()

bool Digikam::MetaEngine::setItemDimensions ( const QSize &  size) const
inherited

◆ setItemFacesMap()

bool Digikam::DMetadata::setItemFacesMap ( const QMultiMap< QString, QVariant > &  facesPath,
bool  write,
const QSize &  size = QSize() 
) const

Set Images Face Map tags in Picassa/Metadatagroup format.

Parameters
write: if true all faces will be written, else update mode: search if at least a face tag exist and write if true.

References Digikam::MetaEngine::ArrayBagTag, Digikam::MetaEngine::getXmpTagString(), Digikam::MetaEngine::NormalTag, removeItemFacesMap(), Digikam::MetaEngine::setXmpTagString(), and Digikam::MetaEngine::StructureTag.

◆ setItemHistory()

bool Digikam::DMetadata::setItemHistory ( const QString &  imageHistoryXml) const

◆ setItemOrientation()

bool Digikam::MetaEngine::setItemOrientation ( ImageOrientation  orientation) const
inherited

Set the Exif orientation tag of item. See ImageOrientation values for details Return true if orientation have been changed in metadata.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::ORIENTATION_ROT_270, Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setXmpTagString().

Referenced by loadUsingFFmpeg(), and Digikam::JPEGUtils::JpegRotator::updateMetadata().

◆ setItemPickLabel()

bool Digikam::DMetadata::setItemPickLabel ( int  pickId) const

◆ setItemPreview()

bool Digikam::MetaEngine::setItemPreview ( const QImage &  preview) const
inherited

Set the Iptc preview image. The thumbnail item must have the right size before (64Kb max with JPEG file, else 256Kb). Look Iptc specification for details. Return true if preview have been changed in metadata. Re-implement this method if you want to use another item file format than JPEG to save preview.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::removeIptcTag(), Digikam::MetaEngine::removeXmpTag(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setXmpTagString().

Referenced by Digikam::JPEGUtils::JpegRotator::updateMetadata().

◆ setItemProgramId()

bool Digikam::MetaEngine::setItemProgramId ( const QString &  program,
const QString &  version 
) const
inherited

Set Program name and program version in Exif and Iptc Metadata. Return true if information have been changed in metadata.

References Digikam::MetaEngine::Private::exifMetadata(), Digikam::MetaEngine::Private::iptcMetadata(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::s_metaEngineMutex, and Digikam::MetaEngine::setXmpTagString().

Referenced by Digikam::MetaEngine::setProgramId().

◆ setItemRating()

◆ setItemTagsPath()

◆ setItemTitles()

◆ setItemUniqueId()

bool Digikam::DMetadata::setItemUniqueId ( const QString &  uuid) const

◆ setMetadataTemplate()

◆ setMetadataWritingMode()

void Digikam::MetaEngine::setMetadataWritingMode ( const int  mode)
inherited

Set metadata writing mode.

Parameters
modeMetadata writing mode as defined by the MetadataWritingMode enum.
See also
MetadataWritingMode, metadataWritingMode()

References Digikam::MetaEngine::Private::metadataWritingMode.

Referenced by setSettings().

◆ setProgramId()

bool Digikam::MetaEngine::setProgramId ( ) const
protectedinherited

Set the Program Name and Program Version information in Exif and Iptc metadata

References Digikam::digiKamVersion(), and Digikam::MetaEngine::setItemProgramId().

Referenced by Digikam::MetaEngine::save().

◆ setSettings()

◆ setTiffThumbnail()

bool Digikam::MetaEngine::setTiffThumbnail ( const QImage &  thumb) const
inherited

◆ setUpdateFileTimeStamp()

void Digikam::MetaEngine::setUpdateFileTimeStamp ( bool  on)
inherited

Enable or disable file timestamp updating when metadata are saved. By default files timestamp are untouched.

References Digikam::MetaEngine::Private::updateFileTimeStamp.

Referenced by setSettings().

◆ setUseCompatibleFileName()

void Digikam::MetaEngine::setUseCompatibleFileName ( const bool  on)
inherited

Enable or disable using compatible file name for sidecar files.

References Digikam::MetaEngine::Private::useCompatibleFileName.

Referenced by setSettings().

◆ setUseXMPSidecar4Reading()

void Digikam::MetaEngine::setUseXMPSidecar4Reading ( const bool  on)
inherited

Enable or disable using XMP sidecar for reading metadata.

References Digikam::MetaEngine::Private::useXMPSidecar4Reading.

Referenced by setSettings().

◆ setWriteDngFiles()

void Digikam::MetaEngine::setWriteDngFiles ( const bool  on)
inherited

Enable or disable writing metadata operations to DNG files.

References Digikam::MetaEngine::Private::writeDngFiles.

Referenced by setSettings().

◆ setWriteRawFiles()

void Digikam::MetaEngine::setWriteRawFiles ( const bool  on)
inherited

Enable or disable writing metadata operations to RAW tiff based files. It requires Exiv2 0.18. By default RAW files are untouched.

References Digikam::MetaEngine::Private::writeRawFiles.

Referenced by setSettings().

◆ setXmp()

bool Digikam::MetaEngine::setXmp ( const QByteArray &  data) const
inherited

Set the Xmp data using a Qt byte array. Return true if Xmp metadata have been changed in memory.

References Digikam::MetaEngine::data(), Digikam::MetaEngine::Private::filePath, Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::s_metaEngineMutex.

Referenced by loadUsingRawEngine().

◆ setXmpKeywords()

bool Digikam::DMetadata::setXmpKeywords ( const QStringList &  newKeywords) const

Set Xmp keywords using a list of strings defined by 'newKeywords' parameter. The existing keywords from image are preserved. The method will compare all new keywords with all already existing keywords to prevent duplicate entries in image. Return true if keywords have been changed in metadata.

References Digikam::MetaEngine::setXmpTagStringBag().

Referenced by DigikamGenericMetadataEditPlugin::XMPKeywords::applyMetadata(), and loadUsingFFmpeg().

◆ setXmpSubCategories()

bool Digikam::DMetadata::setXmpSubCategories ( const QStringList &  newSubCategories) const

Set Xmp sub-categories using a list of strings defined by 'newSubCategories' parameter. The existing sub-categories from image are preserved. The method will compare all new sub-categories with all already existing sub-categories to prevent duplicate entries in image. Return true if sub-categories have been changed in metadata.

References addToXmpTagStringBag().

Referenced by DigikamGenericMetadataEditPlugin::XMPCategories::applyMetadata(), and loadUsingFFmpeg().

◆ setXmpSubjects()

bool Digikam::DMetadata::setXmpSubjects ( const QStringList &  newSubjects) const

Set Xmp subjects using a list of strings defined by 'newSubjects' parameter. The existing subjects from image are preserved. The method will compare all new subject with all already existing subject to prevent duplicate entries in image. Return true if subjects have been changed in metadata.

References addToXmpTagStringBag().

Referenced by DigikamGenericMetadataEditPlugin::XMPSubjects::applyMetadata(), and setMetadataTemplate().

◆ setXmpTagString() [1/2]

◆ setXmpTagString() [2/2]

bool Digikam::MetaEngine::setXmpTagString ( const char *  xmpTagName,
const QString &  value,
MetaEngine::XmpTagType  type 
) const
inherited

Set a Xmp tag with a specific type. Return true if tag is set successfully. This method only accept NormalTag, ArrayBagTag and StructureTag. Other XmpTagTypes do nothing

References Digikam::MetaEngine::ArrayBagTag, Digikam::MetaEngine::NormalTag, Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::StructureTag, and value.

◆ setXmpTagStringBag()

bool Digikam::MetaEngine::setXmpTagStringBag ( const char *  xmpTagName,
const QStringList &  bag 
) const
inherited

◆ setXmpTagStringLangAlt()

bool Digikam::MetaEngine::setXmpTagStringLangAlt ( const char *  xmpTagName,
const QString &  value,
const QString &  langAlt 
) const
inherited

Set a Xmp tag content using a string with an alternative language header. 'langAlt' contain the language alternative information (like "fr-FR" for French - RFC3066 notation) or is null to set alternative language to default settings ("x-default"). Return true if tag is set successfully.

References AutoPtr, Digikam::MetaEngine::getXmpTagStringListLangAlt(), Digikam::MetaEngine::Private::printExiv2ExceptionError(), Digikam::MetaEngine::removeXmpTag(), and value.

Referenced by DigikamGenericMetadataEditPlugin::EXIFCaption::applyMetadata(), and setItemComments().

◆ setXmpTagStringListLangAlt()

bool Digikam::MetaEngine::setXmpTagStringListLangAlt ( const char *  xmpTagName,
const MetaEngine::AltLangMap values 
) const
inherited

Set an Alternative Language Xmp tag content using a map. See AltLangMap class description for details. If tag already exist, it will be removed before. Return true if tag is set successfully.

References AutoPtr, Digikam::MetaEngine::Private::printExiv2ExceptionError(), and Digikam::MetaEngine::removeXmpTag().

Referenced by DigikamGenericMetadataEditPlugin::XMPContent::applyMetadata(), DigikamGenericMetadataEditPlugin::XMPStatus::applyMetadata(), setItemComments(), setItemTitles(), and setMetadataTemplate().

◆ setXmpTagStringSeq()

bool Digikam::MetaEngine::setXmpTagStringSeq ( const char *  xmpTagName,
const QStringList &  seq 
) const
inherited

◆ sidecarFilePathForFile()

QString Digikam::MetaEngine::sidecarFilePathForFile ( const QString &  path,
bool  useLR = false 
)
staticinherited

Return the XMP Sidecar file path for a item file path. If item file path do not include a file name or is empty, this function return a null string.

Referenced by Digikam::MetaEngine::hasSidecar(), Digikam::MetaEngine::loadFromSidecarAndMerge(), Digikam::MetaEngine::Private::saveToXMPSidecar(), Digikam::MetaEngine::sidecarPath(), and Digikam::MetaEngine::sidecarUrl().

◆ sidecarPath()

◆ sidecarUrl() [1/2]

QUrl Digikam::MetaEngine::sidecarUrl ( const QString &  path)
staticinherited

Gives a file url for a local path.

References Digikam::MetaEngine::sidecarFilePathForFile().

◆ sidecarUrl() [2/2]

QUrl Digikam::MetaEngine::sidecarUrl ( const QUrl &  url)
staticinherited

Like sidecarFilePathForFile(), but works for remote URLs.

◆ supportBmff()

bool Digikam::MetaEngine::supportBmff ( )
staticinherited

Return true if library support Base Media File Format (aka CR3, HEIF, HEIC, and AVIF). Note: use this function only after to call initializeExiv2(), else false will always returned. The function return true only if Exiv2 >= 0.27.4 compiled with BMFF support.

References Digikam::s_metaEngineSupportBmff.

Referenced by Digikam::LibsInfoDlg::LibsInfoDlg().

◆ supportMetadataWriting()

bool Digikam::MetaEngine::supportMetadataWriting ( const QString &  typeMime)
staticinherited

Return true if library can write metadata to typeMime file format.

◆ supportXmp()

◆ toAltLangMap()

MetaEngine::AltLangMap Digikam::DMetadata::toAltLangMap ( const QVariant &  var)
static

Referenced by getCopyrightInformation().

◆ unregisterXmpNameSpace()

bool Digikam::MetaEngine::unregisterXmpNameSpace ( const QString &  uri)
staticinherited

Unregister a previously registered custom namespace

References Digikam::MetaEngine::Private::printExiv2ExceptionError().

◆ updateFileTimeStamp()

bool Digikam::MetaEngine::updateFileTimeStamp ( ) const
inherited

Return true if file timestamp is updated when metadata are saved.

References Digikam::MetaEngine::Private::updateFileTimeStamp.

Referenced by Digikam::MetaEngine::Private::copyPrivateData(), and Digikam::MetaEngine::Private::saveOperations().

◆ useCompatibleFileName()

bool Digikam::MetaEngine::useCompatibleFileName ( ) const
inherited

◆ useXMPSidecar4Reading()

bool Digikam::MetaEngine::useXMPSidecar4Reading ( ) const
inherited

Return true if using XMP sidecar for reading metadata is enabled.

References Digikam::MetaEngine::Private::useXMPSidecar4Reading.

Referenced by Digikam::MetaEngine::Private::copyPrivateData().

◆ valuesToString()

QStringList Digikam::DMetadata::valuesToString ( const QVariantList &  list,
const MetadataFields fields 
)
static

◆ valueToString()

QString Digikam::DMetadata::valueToString ( const QVariant &  value,
MetadataInfo::Field  field 
)
static

Convert a QVariant value of the specified field to a user-presentable, i18n'ed string. The QVariant must be of the type as specified in metadatainfo.h and as obtained by getMetadataField.

References Digikam::MetadataInfo::Altitude, Digikam::MetadataInfo::Aperture, Digikam::MetadataInfo::AspectRatio, Digikam::MetadataInfo::AudioBitRate, Digikam::MetadataInfo::AudioChannelType, Digikam::MetadataInfo::AudioCodec, Digikam::MetadataInfo::Comment, Digikam::MetadataInfo::CommentExif, Digikam::MetadataInfo::CommentIptc, Digikam::MetadataInfo::CommentJfif, Digikam::MetaEngine::convertToUserPresentableNumbers(), Digikam::MetadataInfo::CreationDate, Digikam::MetadataInfo::Description, Digikam::MetadataInfo::DescriptionWriter, Digikam::MetadataInfo::DigitizationDate, Digikam::MetadataInfo::Duration, Digikam::MetadataInfo::ExposureMode, Digikam::MetadataInfo::ExposureProgram, Digikam::MetadataInfo::ExposureTime, Digikam::MetadataInfo::FlashMode, Digikam::MetadataInfo::FocalLength, Digikam::MetadataInfo::FocalLengthIn35mm, Digikam::MetadataInfo::FrameRate, Digikam::MetadataInfo::Headline, Digikam::MetadataInfo::IptcCoreCity, Digikam::MetadataInfo::IptcCoreCopyrightNotice, Digikam::MetadataInfo::IptcCoreCountry, Digikam::MetadataInfo::IptcCoreCountryCode, Digikam::MetadataInfo::IptcCoreCreator, Digikam::MetadataInfo::IptcCoreCreatorJobTitle, Digikam::MetadataInfo::IptcCoreInstructions, Digikam::MetadataInfo::IptcCoreIntellectualGenre, Digikam::MetadataInfo::IptcCoreJobID, Digikam::MetadataInfo::IptcCoreLocation, Digikam::MetadataInfo::IptcCoreProvider, Digikam::MetadataInfo::IptcCoreProvinceState, Digikam::MetadataInfo::IptcCoreRightsUsageTerms, Digikam::MetadataInfo::IptcCoreScene, Digikam::MetadataInfo::IptcCoreSource, Digikam::MetadataInfo::IptcCoreSubjectCode, Digikam::MetadataInfo::Latitude, Digikam::MetadataInfo::LatitudeNumber, Digikam::MetadataInfo::Lens, Digikam::MetadataInfo::Longitude, Digikam::MetadataInfo::LongitudeNumber, Digikam::MetadataInfo::Make, Digikam::MetadataInfo::MeteringMode, Digikam::MetadataInfo::Model, Digikam::MetadataInfo::Orientation, Digikam::MetaEngine::ORIENTATION_HFLIP, Digikam::MetaEngine::ORIENTATION_NORMAL, Digikam::MetaEngine::ORIENTATION_ROT_180, Digikam::MetaEngine::ORIENTATION_ROT_270, Digikam::MetaEngine::ORIENTATION_ROT_90, Digikam::MetaEngine::ORIENTATION_ROT_90_HFLIP, Digikam::MetaEngine::ORIENTATION_ROT_90_VFLIP, Digikam::MetaEngine::ORIENTATION_UNSPECIFIED, Digikam::MetaEngine::ORIENTATION_VFLIP, Digikam::MetadataInfo::PositionAccuracy, Digikam::MetadataInfo::PositionDescription, Digikam::MetadataInfo::PositionOrientation, Digikam::MetadataInfo::PositionRoll, Digikam::MetadataInfo::PositionTilt, Digikam::MetadataInfo::Rating, Digikam::MetadataInfo::Sensitivity, Digikam::MetadataInfo::SubjectDistance, Digikam::MetadataInfo::SubjectDistanceCategory, Digikam::MetadataInfo::Title, value, Digikam::MetadataInfo::VideoCodec, Digikam::MetadataInfo::WhiteBalance, and Digikam::MetadataInfo::WhiteBalanceColorTemperature.

Referenced by Digikam::ItemPosition::altitudeFormatted(), Digikam::TableViewColumns::ColumnPhotoProperties::data(), Digikam::ItemScanner::fillCommonContainer(), Digikam::ItemInfo::imageMetadataContainer(), Digikam::ItemPosition::latitudeFormatted(), Digikam::ItemPosition::longitudeFormatted(), possibleValuesForEnumField(), valuesToString(), and Digikam::ItemInfo::videoMetadataContainer().

◆ videoColorModelToString()

QString Digikam::DMetadata::videoColorModelToString ( VIDEOCOLORMODEL  videoColorModel)
static

◆ writeDngFiles()

bool Digikam::MetaEngine::writeDngFiles ( ) const
inherited

Return true if writing metadata operations on DNG files is enabled.

References Digikam::MetaEngine::Private::writeDngFiles.

Referenced by Digikam::MetaEngine::Private::copyPrivateData(), and Digikam::MetaEngine::Private::saveToFile().

◆ writeRawFiles()

bool Digikam::MetaEngine::writeRawFiles ( ) const
inherited

Return true if writing metadata operations on RAW tiff based files is enabled. It's require at least Exiv2 0.18.

References Digikam::MetaEngine::Private::writeRawFiles.

Referenced by Digikam::MetaEngine::Private::copyPrivateData(), and Digikam::MetaEngine::Private::saveToFile().


The documentation for this class was generated from the following files: