xmpbag, xmpseq beim Schreiben

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

xmpbag, xmpseq beim Schreiben

Thomas Beutlich
Hallo,

ich wollte mal nachfragen, wie digikam (unter Verwendung der Exiv2-Bibliothek) mit den Typen xmpbag und xmpseq bem Schreiben von
Werten umgeht? Werden die alten Werte komplett mit den neuen Werten überschrieben (d.h. die alten Werte werden zuvor explizit
gelöscht) der werden die neuen Werte an die alten angefügt?

Vielen Dank und viele Grüße,
Thomas Beutlich

--
http://tbeu.totalcmd.net

-----Ursprüngliche Nachricht-----
Von: [hidden email] [mailto:[hidden email]]Im Auftrag von Andreas
Huggel
Gesendet: Samstag, 9. Januar 2010 12:21
An: Thomas Beutlich
Betreff: Re: XMP und UTF-8


Hallo Thomas,

> Wie macht es digikam?

Weiss nicht, da fraegst du am besten bei denen direkt nach, z.B. bei
<[hidden email]>.

Beide, Bag und Sequence-Typen benutzen ein XmpArrayValue, und darin
sind die Werte in einem std::vector<std::string> abgelegt.
http://www.exiv2.org/doc/classExiv2_1_1XmpArrayValue.html

Man koennte also durchaus auch eine Logik bauen welche die
existierenden Eintraege in Betracht zieht.

Gruss,
Andreas

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: xmpbag, xmpseq beim Schreiben

Gilles Caulier-4
In English please...
Gilles Caulier

2010/1/11 Thomas Beutlich <[hidden email]>:

> Hallo,
>
> ich wollte mal nachfragen, wie digikam (unter Verwendung der Exiv2-Bibliothek) mit den Typen xmpbag und xmpseq bem Schreiben von
> Werten umgeht? Werden die alten Werte komplett mit den neuen Werten überschrieben (d.h. die alten Werte werden zuvor explizit
> gelöscht) der werden die neuen Werte an die alten angefügt?
>
> Vielen Dank und viele Grüße,
> Thomas Beutlich
>
> --
> http://tbeu.totalcmd.net
>
> -----Ursprüngliche Nachricht-----
> Von: [hidden email] [mailto:[hidden email]]Im Auftrag von Andreas
> Huggel
> Gesendet: Samstag, 9. Januar 2010 12:21
> An: Thomas Beutlich
> Betreff: Re: XMP und UTF-8
>
>
> Hallo Thomas,
>
>> Wie macht es digikam?
>
> Weiss nicht, da fraegst du am besten bei denen direkt nach, z.B. bei
> <[hidden email]>.
>
> Beide, Bag und Sequence-Typen benutzen ein XmpArrayValue, und darin
> sind die Werte in einem std::vector<std::string> abgelegt.
> http://www.exiv2.org/doc/classExiv2_1_1XmpArrayValue.html
>
> Man koennte also durchaus auch eine Logik bauen welche die
> existierenden Eintraege in Betracht zieht.
>
> Gruss,
> Andreas
>
> _______________________________________________
> Digikam-devel mailing list
> [hidden email]
> https://mail.kde.org/mailman/listinfo/digikam-devel
>
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

Re: xmpbag, xmpseq beim Schreiben

Marcel Wiesweg
In reply to this post by Thomas Beutlich
> Hallo,
>
> ich wollte mal nachfragen, wie digikam (unter Verwendung der
>  Exiv2-Bibliothek) mit den Typen xmpbag und xmpseq bem Schreiben von Werten
>  umgeht? Werden die alten Werte komplett mit den neuen Werten überschrieben
>  (d.h. die alten Werte werden zuvor explizit gelöscht) der werden die neuen
>  Werte an die alten angefügt?

As you like...Have a look at libkexiv2.
http://websvn.kde.org/trunk/KDE/kdegraphics/libs/libkexiv2/libkexiv2/

    /** Set a Xmp tag content using the bag of strings 'bag'.
        Return true if tag is set successfully.
     */
    bool setXmpTagStringBag(const char *xmpTagName, const QStringList& bag,
                            bool setProgramName=true) 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.
     */
    bool addToXmpTagStringBag(const char *xmpTagName, const QStringList& entriesToAdd,
                              bool setProgramName) 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.
     */
    bool removeFromXmpTagStringBag(const char *xmpTagName, const QStringList& entriesToRemove,
                                   bool setProgramName) const;

_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel