@ -30,11 +30,11 @@
// QT includes.
# include < qcstring.h>
# include < qstring.h>
# include < qimage.h>
# include < qdatetime.h>
# include < qmap.h>
# include < t qcstring.h>
# include < t qstring.h>
# include < t qimage.h>
# include < t qdatetime.h>
# include < t qmap.h>
// Local includes.
@ -78,7 +78,7 @@ public:
/** A map used by decodeExifMetadata() decodeIptcMetadata() methods
to store Tags Key and Tags Value .
*/
typedef QMap< QString, QString> MetaDataMap ;
typedef T QMap< T QString, T QString> MetaDataMap ;
public :
@ -88,7 +88,7 @@ public:
/** Contructor to Load Metadata from image file.
*/
KExiv2 ( const QString& filePath ) ;
KExiv2 ( const T QString& filePath ) ;
/** Standard destructor
*/
@ -96,15 +96,15 @@ public:
/** Return true if library can writte metadata to typeMime file format.
*/
static bool supportMetadataWritting ( const QString& typeMime ) ;
static bool supportMetadataWritting ( const T QString& typeMime ) ;
/** Return a string version of Exiv2 release in format "major.minor.patch"
*/
static QString Exiv2Version ( ) ;
static T QString Exiv2Version ( ) ;
/** Return a string version of libkexiv2 release
*/
static QString version ( ) ;
static T QString version ( ) ;
//-- Metadata manipulation methods ----------------------------------------------
@ -122,62 +122,62 @@ public:
/** Return the file path open with the current instance of interface.
*/
QString getFilePath ( ) const ;
T QString getFilePath ( ) const ;
/** Return a Qt byte array copy of Comments container get from current image.
/** Return a T Qt byte array copy of Comments container get from current image.
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 .
Return a null T Qt byte array if there is no Comments metadata in memory .
*/
QByteArray getComments ( ) const ;
T QByteArray getComments ( ) const ;
/** Return a Qt string object of Comments from current image decoded using
/** Return a T Qt string object of Comments from current image decoded using
the ' detectEncodingAndDecode ( ) ' method . Return a null string if there is no
Comments metadata available .
*/
QString getCommentsDecoded ( ) const ;
T QString getCommentsDecoded ( ) const ;
/** Return a Qt byte array copy of Exif container get from current image.
Return a null Qt byte array if there is no Exif metadata in memory .
/** Return a T Qt byte array copy of Exif container get from current image.
Return a null T Qt byte array if there is no Exif metadata in memory .
*/
QByteArray getExif ( ) const ;
T QByteArray getExif ( ) const ;
/** Return a Qt byte array copy of Iptc container get from current image.
/** Return a T Qt byte array copy of Iptc container get from current image.
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 .
Return a null T Qt byte array if there is no Iptc metadata in memory .
*/
QByteArray getIptc ( bool addIrbHeader = false ) const ;
T QByteArray getIptc ( bool addIrbHeader = false ) const ;
/** Set the Comments data using a Qt byte array. Return true if Comments metadata
/** Set the Comments data using a T Qt byte array. Return true if Comments metadata
have been changed in memory .
*/
bool setComments ( const QByteArray& data ) ;
bool setComments ( const T QByteArray& data ) ;
/** Set the Exif data using a Qt byte array. Return true if Exif metadata
/** Set the Exif data using a T Qt byte array. Return true if Exif metadata
have been changed in memory .
*/
bool setExif ( const QByteArray& data ) ;
bool setExif ( const T QByteArray& data ) ;
/** Set the Iptc data using a Qt byte array. Return true if Iptc metadata
/** Set the Iptc data using a T Qt byte array. Return true if Iptc metadata
have been changed in memory .
*/
bool setIptc ( const QByteArray& data ) ;
bool setIptc ( const T QByteArray& data ) ;
//-- File access methods ----------------------------------------------
/** Load all metadata (EXIF, IPTC and JFIF Comments) from a byte array.
Return true if metadata have been loaded successfully from image data .
*/
bool load ( const QByteArray& imgData ) ;
bool load ( const T QByteArray& imgData ) ;
/** Load all metadata (EXIF, IPTC and JFIF Comments) from a picture (JPEG, RAW, TIFF, PNG,
DNG , etc . . . ) . Return true if metadata have been loaded successfully from file .
*/
virtual bool load ( const QString& filePath ) ;
virtual bool load ( const T QString& filePath ) ;
/** Save all metadata to a file. This one can be different than original picture to perform
transfert operation Return true if metadata have been saved into file .
*/
bool save ( const QString& filePath ) ;
bool save ( const T QString& filePath ) ;
/** The same than save() method, but it apply on current image. Return true if metadata
have been saved into file .
@ -186,47 +186,47 @@ public:
/** return true is the file metadata cannot be written by Exiv2.
*/
static bool isReadOnly ( const QString& filePath ) ;
static bool isReadOnly ( const T QString& filePath ) ;
/** Return 'true' if Comments can be written in file.
*/
static bool canWriteComment ( const QString& filePath ) ;
static bool canWriteComment ( const T QString& filePath ) ;
/** Return 'true' if Exif can be written in file.
*/
static bool canWriteExif ( const QString& filePath ) ;
static bool canWriteExif ( const T QString& filePath ) ;
/** Return 'true' if Iptc can be written in file.
*/
static bool canWriteIptc ( const QString& filePath ) ;
static bool canWriteIptc ( const T QString& filePath ) ;
//-- Metadata Image Information manipulation methods ----------------
/** Set Program name and program version in Exif and Iptc Metadata. Return true if information
have been changed in metadata .
*/
bool setImageProgramId ( const QString& program , const QString& version ) ;
bool setImageProgramId ( const T QString& program , const T QString& version ) ;
/** Return the size of image in pixels using Exif tags. Return a null dimmension if size cannot
be found .
*/
QSize getImageDimensions ( ) const ;
T QSize getImageDimensions ( ) const ;
/** Set the size of image in pixels in Exif tags. Return true if size have been changed
in metadata .
*/
bool setImageDimensions ( const QSize& size , bool setProgramName = true ) ;
bool setImageDimensions ( const T QSize& size , bool setProgramName = true ) ;
/** Return a QImage copy of Exif thumbnail image. Return a null image if thumbnail cannot
/** Return a T 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 .
*/
QImage getExifThumbnail ( bool fixOrientation ) const ;
T QImage getExifThumbnail ( bool fixOrientation ) const ;
/** 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 .
*/
bool setExifThumbnail ( const QImage& thumb , bool setProgramName = true ) ;
bool setExifThumbnail ( const T QImage& thumb , bool setProgramName = true ) ;
/** Return the image orientation set in Exif metadata. The makernotes of image are also parsed to
get this information . See ImageOrientation values for details .
@ -251,18 +251,18 @@ public:
/** Return the time stamp of image. Exif information are check in first, IPTC in second
if image don ' t have Exif information . If no time stamp is found , a null date is returned .
*/
QDateTime getImageDateTime ( ) const ;
T QDateTime getImageDateTime ( ) const ;
/** 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 .
*/
bool setImageDateTime ( const QDateTime& dateTime , bool setDateTimeDigitized = false ,
bool setImageDateTime ( const T QDateTime& dateTime , bool setDateTimeDigitized = false ,
bool setProgramName = true ) ;
/** Return a QImage copy of Iptc preview image. Return a null image if preview cannot
/** Return a T QImage copy of Iptc preview image. Return a null image if preview cannot
be found .
*/
bool getImagePreview ( QImage& preview ) const ;
bool getImagePreview ( T QImage& preview ) const ;
/** Set the Iptc preview image. The thumbnail image must have the right size before (64Kb max
with JPEG file , else 256 Kb ) . Look Iptc specification for details . Return true if preview
@ -270,52 +270,52 @@ public:
Re - implemente this method if you want to use another image file format than JPEG to
save preview .
*/
virtual bool setImagePreview ( const QImage& preview , bool setProgramName = true ) ;
virtual bool setImagePreview ( const T QImage& preview , bool setProgramName = true ) ;
/** Return a strings list of Iptc keywords from image. Return an empty list if no keyword are set. */
QStringList getImageKeywords ( ) const ;
T QStringList getImageKeywords ( ) const ;
/** Set Iptc keywords using a list of strings defined by 'newKeywords' parameter. Use 'getImageKeywords()'
method to set ' oldKeywords ' parameter with existing keywords from image . The method will compare
all new keywords with all old keywords to prevent duplicate entries in image . Return true if keywords
have been changed in metadata .
*/
bool setImageKeywords ( const QStringList& oldKeywords , const QStringList& newKeywords ,
bool setImageKeywords ( const T QStringList& oldKeywords , const T QStringList& newKeywords ,
bool setProgramName = true ) ;
/** Return a strings list of Iptc subjects from image. Return an empty list if no subject are set. */
QStringList getImageSubjects ( ) const ;
T QStringList getImageSubjects ( ) const ;
/** Set Iptc subjects using a list of strings defined by 'newSubjects' parameter. Use 'getImageSubjects()'
method to set ' oldSubjects ' parameter with existing subjects from image . The method will compare
all new subjects with all old subjects to prevent duplicate entries in image . Return true if subjects
have been changed in metadata .
*/
bool setImageSubjects ( const QStringList& oldSubjects , const QStringList& newSubjects ,
bool setImageSubjects ( const T QStringList& oldSubjects , const T QStringList& newSubjects ,
bool setProgramName = true ) ;
/** Return a strings list of Iptc sub-categories from image. Return an empty list if no sub-category
are set .
*/
QStringList getImageSubCategories ( ) const ;
T QStringList getImageSubCategories ( ) const ;
/** 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 image . The method will compare all new sub - categories with all old sub - categories to prevent
duplicate entries in image . Return true if sub - categories have been changed in metadata .
*/
bool setImageSubCategories ( const QStringList& oldSubCategories , const QStringList& newSubCategories ,
bool setImageSubCategories ( const T QStringList& oldSubCategories , const T QStringList& newSubCategories ,
bool setProgramName = true ) ;
/** Return a QString copy of Exif user comments. Return a null string if user comments cannot
/** Return a T QString copy of Exif user comments. Return a null string if user comments cannot
be found .
*/
QString getExifComment ( ) const ;
T QString getExifComment ( ) const ;
/** Set the Exif user comments from image. Look Exif specification for more details about this tag.
Return true if Exif user comments have been changed in metadata .
*/
bool setExifComment ( const QString& comment , bool setProgramName = true ) ;
bool setExifComment ( const T QString& comment , bool setProgramName = true ) ;
/** Get all GPS location information set in image. Return true if all information can be found.
*/
@ -336,11 +336,11 @@ public:
/** Get an Exif tags content like a string. If 'escapeCR' parameter is true, the CR characters
will be removed . If Exif tag cannot be found a null string is returned .
*/
QString getExifTagString ( const char * exifTagName , bool escapeCR = true ) const ;
T QString getExifTagString ( const char * exifTagName , bool escapeCR = true ) const ;
/** Set an Exif tag content using a string. Return true if tag is set successfully.
*/
bool setExifTagString ( const char * exifTagName , const QString& value , bool setProgramName = true ) ;
bool setExifTagString ( const char * exifTagName , const T QString& value , bool setProgramName = true ) ;
/** Get an Exif tags content like a long value. Return true if Exif tag be found.
*/
@ -365,29 +365,29 @@ public:
/** Get an Exif tags content like a bytes array. Return an empty bytes array if Exif
tag cannot be found .
*/
QByteArray getExifTagData ( const char * exifTagName ) const ;
T QByteArray getExifTagData ( const char * exifTagName ) const ;
/** Set an Exif tag content using a bytes array. Return true if tag is set successfully.
*/
bool setExifTagData ( const char * exifTagName , const QByteArray& data , bool setProgramName = true ) ;
bool setExifTagData ( const char * exifTagName , const T QByteArray& data , bool setProgramName = true ) ;
/** Get an Iptc tags content like a string. If 'escapeCR' parameter is true, the CR characters
will be removed . If Iptc tag cannot be found a null string is returned .
*/
QString getIptcTagString ( const char * iptcTagName , bool escapeCR = true ) const ;
T QString getIptcTagString ( const char * iptcTagName , bool escapeCR = true ) const ;
/** Set an Iptc tag content using a string. Return true if tag is set successfully.
*/
bool setIptcTagString ( const char * iptcTagName , const QString& value , bool setProgramName = true ) ;
bool setIptcTagString ( const char * iptcTagName , const T QString& value , bool setProgramName = true ) ;
/** Get an Iptc tags content like a bytes array. Return an empty bytes array if Iptc
tag cannot be found .
*/
QByteArray getIptcTagData ( const char * iptcTagName ) const ;
T QByteArray getIptcTagData ( const char * iptcTagName ) const ;
/** Set an Iptc tag content using a bytes array. Return true if tag is set successfully.
*/
bool setIptcTagData ( const char * iptcTagName , const QByteArray& data , bool setProgramName = true ) ;
bool setIptcTagData ( const char * iptcTagName , const T QByteArray& data , bool setProgramName = true ) ;
/** Remove the Exif tag 'exifTagName' from Exif metadata. Return true if tag is
removed successfully .
@ -401,24 +401,24 @@ public:
/** Return the Exif Tag title or a null string.
*/
QString getExifTagTitle ( const char * exifTagName ) ;
T QString getExifTagTitle ( const char * exifTagName ) ;
/** Return the Exif Tag description or a null string.
*/
QString getExifTagDescription ( const char * exifTagName ) ;
T QString getExifTagDescription ( const char * exifTagName ) ;
/** Return the Iptc Tag title or a null string.
*/
QString getIptcTagTitle ( const char * iptcTagName ) ;
T QString getIptcTagTitle ( const char * iptcTagName ) ;
/** Return the Iptc Tag description or a null string.
*/
QString getIptcTagDescription ( const char * iptcTagName ) ;
T QString getIptcTagDescription ( const char * iptcTagName ) ;
/** 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 .
' exifKeysFilter ' is a T QStringList of Exif keys .
For example , if you use the string list given below :
" Iop "
@ -433,12 +433,12 @@ public:
- not include " Iop " , or " Thumbnail " , or " Image " , or " Photo " in the Exif tag keys
if ' inverSelection ' is true .
*/
KExiv2 : : MetaDataMap getExifTagsDataList ( const QStringList & exifKeysFilter , bool invertSelection = false ) ;
KExiv2 : : MetaDataMap getExifTagsDataList ( const T QStringList & exifKeysFilter , bool invertSelection = false ) ;
/** 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 .
' iptcKeysFilter ' is a T QStringList of Iptc keys .
For example , if you use the string list given below :
" Envelope "
@ -451,7 +451,7 @@ public:
- not include " Envelope " , or " Application2 " in the Iptc tag keys
if ' inverSelection ' is true .
*/
KExiv2 : : MetaDataMap getIptcTagsDataList ( const QStringList & iptcKeysFilter , bool invertSelection = false ) ;
KExiv2 : : MetaDataMap getIptcTagsDataList ( const T QStringList & iptcKeysFilter , bool invertSelection = false ) ;
//-- Advanced methods to convert and decode data -------------------------
@ -471,8 +471,8 @@ protected:
if ( on )
{
QString version ( digikam_version ) ;
QString software ( " digiKam " ) ;
T QString version ( digikam_version ) ;
T QString software ( " digiKam " ) ;
return setImageProgramId ( software , version ) ;
}