C#を使用してGIFからカスタムXMPメタデータを追加または削除する

Extensible Metadata Platform(XMP)メタデータは、XML形式のテキストとしてエンコードされます。定義されたXMPデータモデルを使用して、メタデータプロパティの任意のセットを名前/値ペアの形式で保存できます。プログラムでカスタムXMPメタデータパッケージを画像に追加できます。この記事では、C#を使用してGIFからカスタムXMPメタデータを追加または削除する方法を学習します。

この記事では、次のトピックについて説明/取り上げています。

XMPメタデータを追加または削除するためのC#API

GroupDocs.Metadata for .NET APIを使用して、カスタムXMPメタデータパッケージを追加または削除します。これにより、ドキュメントおよび画像ファイル形式からメタデータプロパティを追加、編集、取得、および削除できます。 APIは、組み込み、XMP、EXIF、IPTC、画像リソースブロック、ID3、カスタムメタデータプロパティなどの最も注目すべきメタデータ標準で動作します。 .NETプラットフォームを対象とするあらゆる開発環境でアプリケーションを開発するために使用できます。

APIのDLLをダウンロードするか、NuGetを使用してインストールできます。

Install-Package GroupDocs.Metadata

C#を使用してカスタムXMPメタデータパッケージをGIFに追加する

以下に説明する簡単な手順に従うことで、ユーザー定義のプロパティを含む完全なカスタムXMPパッケージを簡単に作成して追加できます。

  • メタデータクラスのインスタンスを作成します
  • GIF画像のパスを指定します
  • GetRootPackage as IXmp standard
  • XmpPackageクラスのインスタンスを作成します
  • パッケージプレフィックスとNamespaceUriを提供します
  • Setメソッドを使用して名前/値ペアでプロパティを設定します
  • XmpPacketWrapperクラスのインスタンスを作成します
  • AddPackageメソッドを呼び出し、作成されたXmpPackageを渡します
  • 作成したXmpPacketWrapperをIXMpに割り当てます。XmpPackage
  • Metadata.Saveメソッドを使用して出力ファイルを保存します

次のコードサンプルは、C#を使用してカスタムXMPメタデータパッケージを作成してGIF画像に追加する方法を示しています。

using (Metadata metadata = new Metadata(@"C:\Files\xmp.gif")) {

  IXmp root = (IXmp)metadata.GetRootPackage();
  XmpPacketWrapper packet = new XmpPacketWrapper();

  XmpPackage custom = new XmpPackage("gd", "https://groupdocs.com");
  custom.Set("gd:Copyright", "Copyright (C) 2021 GroupDocs. All Rights Reserved.");
  custom.Set("gd:CreationDate", DateTime.Now.ToString());
  custom.Set("gd:Company", XmpArray.From(new String[] { "Aspose", "GroupDocs" }, XmpArrayType.Ordered));

  packet.AddPackage(custom);
  root.XmpPackage = packet;
  metadata.Save(@"C:\Files\xmp_output.gif");
}

上記のコードサンプルは、XMPメタデータパッケージを入力画像に追加します。 ExifToolは、生成された出力GIF画像から次のメタデータを読み取ります。

C#を使用してXMPメタデータパッケージをGIFに追加する

C#を使用してXMPメタデータパッケージをGIFに追加する

IXMPインターフェイスは、XmpPackage {。brokenlink}プロパティを公開して、XMPメタデータパッケージを取得または設定します。

Metadataクラスは、ファイルから抽出されたすべてのメタデータプロパティへのアクセスを提供するルートパッケージを取得するためのGetRootPackageメソッドを提供します。

XmpPackageクラスは、PrefixNamespaceUriKeysなどのパッケージを定義するためのさまざまなプロパティを提供します。このクラスは、ユーザー定義のメタデータプロパティの名前/値を設定するためのSetメソッドも提供します。

XmpPacketWrapperクラスには、シリアル化されたXMPパッケージが含まれています。このクラスのAddPackageメソッドを使用すると、定義済みのカスタムパッケージを追加できます。

XMPメタデータの操作」の詳細については、ドキュメントを参照してください。

C#を使用してカスタムXMPパッケージメタデータプロパティを読み取る

以下に説明する簡単な手順に従うことで、すべてのカスタムXMPパッケージのユーザー定義プロパティを簡単に読み取ることができます。

  • メタデータクラスのインスタンスを作成します
  • GIF画像のパスを指定します
  • GetRootPackage as IXmp standard
  • IXmp.XmpPackage.Packagesからすべてのパッケージを1つずつ取得します
  • 各パッケージのNamespaceUriとプレフィックスを取得します
  • パッケージキーごとにFindPropertiesを呼び出して、プロパティ名と値を取得します

次のコードサンプルは、C#を使用してカスタムXMPパッケージで定義されたすべてのプロパティを読み取る方法を示しています。

string file = @"C:\Files\xmp_output.gif";
using (Metadata metadata = new Metadata(file)) 
{
  IXmp root = (IXmp)metadata.GetRootPackage();

  if (root.XmpPackage != null)
  {
    foreach (var package in root.XmpPackage.Packages)
    {
      Console.WriteLine(package.NamespaceUri);
      Console.WriteLine(package.Prefix);

      foreach(var keys in package.Keys)
      {
        var property = package.FindProperties(p => p.Name == keys).FirstOrDefault();
        Console.WriteLine(property.Name + " : " + property.Value);
      }
    }
  }
}

上記のコードサンプルは、次の出力を生成します。

https://groupdocs.com
gd
gd:Copyright: Copyright (C) 2021 GroupDocs. All Rights Reserved.
gd:CreationDate: 04/05/2021 2:26:17 am
gd:Company: <rdf:Seq><rdf:li>Aspose</rdf:li><rdf:li>GroupDocs</rdf:li></rdf:Seq>

XmpPackageクラスのFindPropertiesメソッドは、指定された述語を満たすメタデータプロパティを再帰的に検索して検索します。

C#を使用してカスタムXMPパッケージを削除する

以下に説明する簡単な手順に従って、GIF画像からXMPパッケージを削除できます。

次のコードサンプルは、C#を使用してGIF画像からXMPメタデータパッケージを削除する方法を示しています。

using (Metadata metadata = new Metadata(@"C:\Files\xmp_output.gif"))
{
  IXmp root = (IXmp)metadata.GetRootPackage();
  root.XmpPackage = null;
  metadata.Save(@"C:\Files\xmp_output_Removed.gif");
}

上記のコードサンプルは、入力画像からXMPメタデータパッケージを削除します。 ExifToolは、生成された出力GIF画像から次のメタデータを読み取ります。

C#を使用してGIFからXMPメタデータパッケージを削除します

C#を使用してGIFからXMPメタデータパッケージを削除します

無料ライセンスを取得する

無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。

結論

この記事では、C#を使用してGIF画像からカスタムXMPパッケージメタデータを追加または削除する方法を学習しました。また、C#を使用してXMPパッケージのプロパティを読み取る方法も学びました。さらに、ドキュメントを使用して、GroupDocs.Metadata for.NETAPIについて学ぶことができます。ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。

関連項目