XmpPacketWrapper

XmpPacketWrapper class

Содержит сериализованный пакет XMP, включая заголовок и трейлер. Оболочка, состоящая из пары инструкций обработки XML (PI), может быть помещена вокруг элемента rdf:RDF.

public class XmpPacketWrapper : MetadataPackage, IXmpType

Конструкторы

Имя Описание
XmpPacketWrapper() Инициализирует новый экземплярXmpPacketWrapper класс.
XmpPacketWrapper(XmpHeaderPI, XmpTrailerPI, XmpMeta) Инициализирует новый экземплярXmpPacketWrapper класс.

Характеристики

Имя Описание
Count { get; } Получает количество свойств метаданных.
HeaderPI { get; set; } Получает или задает инструкцию обработки заголовка.
Item { get; } ПолучаетMetadataProperty с указанным именем.
Keys { get; } Получает коллекцию имен свойств метаданных.
Meta { get; set; } Получает или задает метаданные XMP.
MetadataType { get; } Получает тип метаданных.
PackageCount { get; } Получает количество пакетов внутри структуры XMP.
Packages { get; } Получает массивXmpPackage внутри XMP.
PropertyDescriptors { get; } Получает набор дескрипторов, содержащих информацию о свойствах, доступных через поисковую систему GroupDocs.Metadata.
Schemes { get; } Предоставляет доступ к известным схемам XMP.
TrailerPI { get; set; } Получает или задает инструкцию обработки трейлера.

Методы

Имя Описание
AddPackage(XmpPackage) Добавляет пакет.
AddProperties(Func<MetadataProperty, bool>, PropertyValue) Добавляет известные свойства метаданных, удовлетворяющие указанному предикату. Операция является рекурсивной, поэтому она также влияет на все вложенные пакеты.
ClearPackages() Удаляет всеXmpPackage внутри XMP.
Contains(string) Определяет, содержит ли пакет свойство метаданных с указанным именем.
ContainsPackage(string) Определяет, существует ли пакет в оболочке XMP.
virtual FindProperties(Func<MetadataProperty, bool>) Находит свойства метаданных, удовлетворяющие указанному предикату. Поиск является рекурсивным, поэтому он затрагивает также все вложенные пакеты.
GetEnumerator() Возвращает перечислитель, который выполняет итерацию по коллекции.
GetPackage(string) Получает пакет по пространству имен uri.
GetXmpRepresentation() Возвращает строковое значение в формате XMP.
RemovePackage(XmpPackage) Удаляет указанный пакет.
virtual RemoveProperties(Func<MetadataProperty, bool>) Удаляет свойства метаданных, удовлетворяющие указанному предикату.
virtual Sanitize() Удаляет доступные для записи свойства метаданных из пакета. Операция является рекурсивной, поэтому она также влияет на все вложенные пакеты.
SetProperties(Func<MetadataProperty, bool>, PropertyValue) Устанавливает известные свойства метаданных, удовлетворяющие указанному предикату. Операция является рекурсивной, поэтому она влияет также на все вложенные пакеты. Этот метод представляет собой комбинациюAddProperties иUpdateProperties Если существующее свойство удовлетворяет предикату, его значение обновляется. Если в пакете отсутствует известное свойство, удовлетворяющее предикату, оно добавляется в пакет.
UpdateProperties(Func<MetadataProperty, bool>, PropertyValue) Обновляет известные свойства метаданных, удовлетворяющие указанному предикату. Операция является рекурсивной, поэтому она также влияет на все вложенные пакеты.

Примечания

Узнать больше

Примеры

В этом примере показано, как обновить свойства метаданных XMP.

using (Metadata metadata = new Metadata(Constants.GifWithXmp))
{
    IXmp root = metadata.GetRootPackage() as IXmp;
    if (root != null && root.XmpPackage != null)
    {
        // если в XMP-пакете нет такой схемы, мы должны ее создать
        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;

        // Если вы не хотите сохранять старые значения, просто замените всю схему
        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();

        // Установить свойство сложного типа
        root.XmpPackage.Schemes.BasicJobTicket.Jobs = new[]
        {
            new XmpJob
            {
                ID = "1",
                Name = "test job",
                Url = "https://groupdocs.com"
            },
        };

        // ... 

        metadata.Save(Constants.OutputGif);
    }
}

Смотрите также