XmpPacketWrapper

XmpPacketWrapper class

Enthält serialisiertes XMP-Paket einschließlich Header und Trailer. Ein Wrapper, der aus zwei XML-Verarbeitungsanweisungen (PIs) besteht, kann um das rdf:RDF-Element platziert werden.

public class XmpPacketWrapper : MetadataPackage, IXmpType

Konstrukteure

Name Beschreibung
XmpPacketWrapper() Initialisiert eine neue Instanz vonXmpPacketWrapper Klasse.
XmpPacketWrapper(XmpHeaderPI, XmpTrailerPI, XmpMeta) Initialisiert eine neue Instanz vonXmpPacketWrapper Klasse.

Eigenschaften

Name Beschreibung
Count { get; } Ruft die Anzahl der Metadateneigenschaften ab.
HeaderPI { get; set; } Ruft die Header-Verarbeitungsanweisung ab oder setzt sie.
Item { get; } Ruft die abMetadataProperty mit dem angegebenen Namen.
Keys { get; } Ruft eine Sammlung der Metadaten-Eigenschaftsnamen ab.
Meta { get; set; } Ruft das XMP-Meta ab oder legt es fest.
MetadataType { get; } Ruft den Metadatentyp ab.
PackageCount { get; } Ruft die Anzahl der Pakete innerhalb der XMP-Struktur ab.
Packages { get; } Ruft ein Array von abXmpPackage innerhalb von XMP.
PropertyDescriptors { get; } Ruft eine Sammlung von Deskriptoren ab, die Informationen zu Eigenschaften enthalten, auf die über die Suchmaschine GroupDocs.Metadata zugegriffen werden kann.
Schemes { get; } Bietet Zugriff auf bekannte XMP-Schemas.
TrailerPI { get; set; } Ruft die Trailer-Verarbeitungsanweisung ab oder legt sie fest.

Methoden

Name Beschreibung
AddPackage(XmpPackage) Fügt das Paket hinzu.
AddProperties(Func<MetadataProperty, bool>, PropertyValue) Fügt bekannte Metadateneigenschaften hinzu, die das angegebene Prädikat erfüllen. Die Operation ist rekursiv, sodass sie sich auch auf alle verschachtelten Pakete auswirkt.
ClearPackages() Entfernt alleXmpPackage innerhalb von XMP.
Contains(string) Bestimmt, ob das Paket eine Metadateneigenschaft mit dem angegebenen Namen enthält.
ContainsPackage(string) Bestimmt, ob das Paket im XMP-Wrapper vorhanden ist.
virtual FindProperties(Func<MetadataProperty, bool>) Findet die Metadateneigenschaften, die das angegebene Prädikat erfüllen. Die Suche ist rekursiv, sodass sie auch alle verschachtelten Pakete betrifft.
GetEnumerator() Gibt einen Enumerator zurück, der die Sammlung durchläuft.
GetPackage(string) Ruft Paket nach Namensraum uri ab.
GetXmpRepresentation() Gibt den in der Zeichenfolge enthaltenen Wert im XMP-Format zurück.
RemovePackage(XmpPackage) Entfernt das angegebene Paket.
virtual RemoveProperties(Func<MetadataProperty, bool>) Entfernt Metadateneigenschaften, die das angegebene Prädikat erfüllen.
virtual Sanitize() Entfernt beschreibbare Metadateneigenschaften aus dem Paket. Der Vorgang ist rekursiv, sodass er sich auch auf alle verschachtelten Pakete auswirkt.
SetProperties(Func<MetadataProperty, bool>, PropertyValue) Legt bekannte Metadateneigenschaften fest, die das angegebene Prädikat erfüllen. Die Operation ist rekursiv, sodass sie sich auch auf alle verschachtelten Pakete auswirkt. Diese Methode ist eine Kombination ausAddProperties UndUpdateProperties Wenn eine vorhandene Eigenschaft das Prädikat erfüllt, wird ihr Wert aktualisiert. Wenn im Paket eine bekannte Eigenschaft fehlt, die das Prädikat erfüllt, wird sie dem Paket hinzugefügt.
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Aktualisiert bekannte Metadateneigenschaften, die das angegebene Prädikat erfüllen. Die Operation ist rekursiv, sodass sie sich auch auf alle verschachtelten Pakete auswirkt.

Bemerkungen

Erfahren Sie mehr

Beispiele

Dieses Beispiel zeigt, wie XMP-Metadateneigenschaften aktualisiert werden.

using (Metadata metadata = new Metadata(Constants.GifWithXmp))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        // Wenn es kein solches Schema im XMP-Paket gibt, sollten wir es erstellen
        if (root.XmpPackage.Schemes.DublinCore == null)
        {
            root.XmpPackage.Schemes.DublinCore = new XmpDublinCorePackage();
        }
        root.XmpPackage.Schemes.DublinCore.Format = "image/gif";
        root.XmpPackage.Schemes.DublinCore.SetRights("Copyright (C) 2011-2022 GroupDocs. All Rights Reserved");
        root.XmpPackage.Schemes.DublinCore.SetSubject("test");

        if (root.XmpPackage.Schemes.CameraRaw == null)
        {
            root.XmpPackage.Schemes.CameraRaw = new XmpCameraRawPackage();
        }
        root.XmpPackage.Schemes.CameraRaw.Shadows = 50;
        root.XmpPackage.Schemes.CameraRaw.AutoBrightness = true;
        root.XmpPackage.Schemes.CameraRaw.AutoExposure = true;
        root.XmpPackage.Schemes.CameraRaw.CameraProfile = "test";
        root.XmpPackage.Schemes.CameraRaw.Exposure = 0.0001;

        // Wenn Sie die alten Werte nicht behalten möchten, ersetzen Sie einfach das gesamte Schema
        root.XmpPackage.Schemes.XmpBasic = new XmpBasicPackage();
        root.XmpPackage.Schemes.XmpBasic.CreateDate = DateTime.Today;
        root.XmpPackage.Schemes.XmpBasic.BaseUrl = "https://groupdocs.com";
        root.XmpPackage.Schemes.XmpBasic.Rating = 5;

        root.XmpPackage.Schemes.BasicJobTicket = new XmpBasicJobTicketPackage();

        // Legen Sie eine Eigenschaft eines komplexen Typs fest
        root.XmpPackage.Schemes.BasicJobTicket.Jobs = new[]
        {
            new XmpJob
            {
                ID = "1",
                Name = "test job",
                Url = "https://groupdocs.com"
            },
        };

        // ... 

        metadata.Save(Constants.OutputGif);
    }
}

Siehe auch