Extrahujte metadata z obrázků pomocí C#

Můžete přidat, upravit, odstranit nebo extrahovat detaily obrázku, jako je výška, šířka, značka, model atd. uložené ve formě metadat programově. Jako vývojář C# můžete snadno extrahovat a manipulovat s metadatovými informacemi obrázků programově v cloudu. V tomto článku se dozvíte, jak extrahovat a manipulovat s metadaty obrázků pomocí REST API v C#.

V tomto článku se diskutuje/pokrývá následující témata:

Manipulace s metadaty dokumentů REST API a .NET SDK

Pro manipulaci s metadaty obrázků JPEG budu používat .NET SDK of GroupDocs.Metadata Cloud API. Umožňuje přidávat, upravovat, načítat a odstraňovat vlastnosti metadat z dokumentů a formátů obrazových souborů. Stačí definovat kritéria vyhledávání a metadata Cloud REST API se postará o zadané operace s metadaty v rámci podporované formáty souborů. Poskytuje také Java SDK jako členy rodiny manipulace s metadaty dokumentů pro Cloud API.

GroupDocs.Metadata můžete nainstalovat do svého projektu Visual Studio z NuGet Správce balíčků nebo pomocí následujícího příkazu v konzole Správce balíčků:

Install-Package GroupDocs.Metadata-Cloud

Než začnete postupovat podle kroků a dostupných příkladů kódu, získejte své ID klienta a tajný klíč klienta z dashboard. Jakmile budete mít své ID klienta a tajný klíč, přidejte kód, jak je uvedeno níže:

string clientID = "112f0f38-9dae-42d5-b4fc-cc84ae644972";
string clientSecret = "16ad3fe0bdc39c910f57d2fd48a5d618";
string myStorage = "";

Configuration configuration = new Configuration(clientID, clientSecret);
configuration.ApiBaseUrl = "https://api.groupdocs.cloud";

Přidejte metadata do obrázků pomocí REST API v C#

K obrázkům můžete přidat metadata pomocí následujících jednoduchých kroků:

Nahrajte obrázek

Nejprve nahrajte soubor JPEG do cloudu pomocí níže uvedeného příkladu kódu:

// inicializace api
FileApi fileApi = new FileApi(configuration);
string path = @"C:\Files";

var file = Directory.GetFiles(path, "input.jpg", SearchOption.AllDirectories).FirstOrDefault();
if (file.Length != 0)
{
    var relativeFilePath = file.Replace(path, string.Empty).Trim(Path.DirectorySeparatorChar);

    var fileStream = File.Open(file, FileMode.Open);

    fileApi.UploadFile(new UploadFileRequest(relativeFilePath, fileStream, myStorage));
    fileStream.Close();
}

V důsledku toho bude nahraný soubor obrázku JPEG dostupný v sekce souborů vašeho řídicího panelu v cloudu.

Přidejte metadata do obrázku pomocí C#

Metadata k obrázku JPEG můžete přidat programově podle následujících kroků.

  • Vytvořte instanci MetadataApi
  • Nastavte cestu k souboru obrázku JPEG v modelu FileInfo
  • Definujte AddOptions
  • Nastavte hodnotu a kritéria vyhledávání pro vlastnost pomocí modelu AddProperty
  • Vytvořte AddRequest pomocí AddOptions
  • Získejte výsledky voláním metody MetadataApi.Add()

Následující ukázka kódu ukazuje, jak přidat metadata do obrázku JPEG pomocí REST API.

// inicializace api
var apiInstance = new MetadataApi(configuration);

// vstupní cestu obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definovat možnosti přidání metadat
var options = new AddOptions
{
    FileInfo = fileInfo,
    Properties = new List<AddProperty>
    {
        new AddProperty
        {
            Value = "All rights reserved.",
            Type = "String",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
        }
    }
};

// přidat žádost
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Přidejte metadata z obrázků pomocí REST API v C#

Přidejte metadata z obrázků pomocí REST API v C#

Stáhněte si obrázek

Výše uvedené ukázky kódu uloží aktualizovaný soubor JPEG do cloudu a lze je stáhnout pomocí následující ukázky kódu:

// inicializace api
var fileApi = new FileApi(configuration);

// výchozí cesta
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// žádost o stažení
var downloadRequest = new DownloadFileRequest(file, myStorage);

Stream downloadResponse = fileApi.DownloadFile(downloadRequest);
using (var fileStream = File.Create("C:\\Files\\input.jpg"))
{
    downloadResponse.Seek(0, SeekOrigin.Begin);
    downloadResponse.CopyTo(fileStream);
}

Aktualizujte metadata obrázku pomocí C#

Metadata obrázku JPEG můžete aktualizovat programově podle následujících kroků.

  • Vytvořte instanci MetadataApi
  • Nastavte cestu k souboru obrázku JPEG v modelu FileInfo
  • Definujte SetOptions
  • Nastavte NewValue a SearchCriteria pro vlastnost pomocí modelu SetProperty
  • Vytvořte SetRequest pomocí SetOptions
  • Získejte výsledky voláním metody MetadataApi.Set()

Následující ukázka kódu ukazuje, jak nastavit metadata obrázku JPEG pomocí REST API. Chcete-li nahrát a stáhnout soubor, postupujte podle výše uvedených kroků.

// inicializace api
var apiInstance = new MetadataApi(configuration);

// vstupní cestu obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definovat možnosti sady metadat
var options = new SetOptions
{
    FileInfo = fileInfo,
    Properties = new List<SetProperty>
    {
        new SetProperty
        {
            NewValue = "Copyright 2021",
            SearchCriteria = new SearchCriteria
            {
                TagOptions = new TagOptions
                {
                    PossibleName = "Copyright"
                }
            },
            Type = "String"
        }
    }
};

// požadavek na aktualizaci
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Aktualizace metadat z obrázků pomocí REST API v C#

Aktualizace metadat z obrázků pomocí REST API v C#

Odebrat metadata z obrázku pomocí C#

Metadata z obrázku JPEG můžete odstranit programově podle následujících kroků.

  • Vytvořte instanci MetadataApi
  • Nastavte cestu k souboru obrázku JPEG v modelu FileInfo
  • Definujte možnosti RemoveOptions
  • Nastavte kritéria vyhledávání
  • Vytvořte RemoveRequest pomocí RemoveOptions
  • Výsledky získáte voláním metody MetadataApi.Remove()

Následující ukázka kódu ukazuje, jak odstranit metadata z obrázku JPEG pomocí REST API. Chcete-li nahrát a stáhnout soubor, postupujte podle výše uvedených kroků.

// inicializace api
var apiInstance = new MetadataApi(configuration);

// vstupní cestu obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// definovat možnosti odstranění metadat
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// odstranit požadavek
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Odebrat metadata z obrázků pomocí REST API v C#

Odebrat metadata z obrázků pomocí REST API v C#

Extrahujte metadata z obrázku pomocí C#

Metadata z obrázku JPEG můžete extrahovat programově podle následujících kroků.

  • Vytvořte instanci MetadataApi
  • Nastavte cestu k souboru obrázku JPEG v modelu FileInfo
  • Definujte možnosti extrahování
  • Vytvořte ExtractRequest pomocí ExtractOptions
  • Získejte výsledky voláním metody MetadataApi.Extract()

Následující ukázka kódu ukazuje, jak extrahovat metadata z obrázku JPEG pomocí REST API. Chcete-li nahrát soubor, postupujte podle výše uvedených kroků.

// inicializace api
var apiInstance = new MetadataApi(configuration);

// zdrojový soubor
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// extrahovat možnosti
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// žádost o výpis
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// extrahovaná metadata
if (response.MetadataTree.InnerPackages != null)
{
    var innerPackages = response.MetadataTree.InnerPackages;
   for (int i = 0; i < innerPackages.Count; i++)
    {
        Console.WriteLine($"\nPackage: {innerPackages[i].PackageName}");
        var packageProperties = innerPackages[i].PackageProperties;
       for (int j = 0; j < packageProperties.Count; j++)
        {
            Console.WriteLine(packageProperties[j].Name + " : " + packageProperties[j].Value);
        }
    }
}
Metadata obrázku

Metadata obrázku

Výše uvedená ukázka kódu vytvoří následující výstup:

Package: FileFormat
FileFormat : 9
MimeType : image/jpeg
ByteOrder : 1
Width : 480
Height : 360

Package: Xmp
http://ns.microsoft.com/photo/1.0/ :

Package: Exif
Exif.GpsIfd :
Exif.ExifIfd :
Make : Canon
Model : Canon PowerShot S40
Orientation : System.Int32[]
XResolution : System.Double[]
YResolution : System.Double[]
ResolutionUnit : System.Int32[]
DateTime : 2003:12:14 12:01:44
YCbCrPositioning : System.Int32[]
ExifIfd : System.Int64[]
Exif.Thumbnail : System.Byte[] 

Vyzkoušejte online

Vyzkoušejte prosím následující bezplatný online nástroj pro manipulaci s metadaty JPEG, který je vyvinut pomocí výše uvedeného API. https://products.groupdocs.app/metadata/jpeg

Závěr

V tomto článku jste se naučili přidávat, upravovat, odstraňovat a extrahovat metadata z obrázků v cloudu. Tento článek také vysvětluje, jak programově nahrát soubor obrázku JPEG do cloudu a stáhnout jej z cloudu. Můžete se dozvědět ještě více o GroupDocs.Metadata Manipulation Cloud API pomocí dokumentace. Poskytujeme také sekci API Reference, která vám umožní vizualizovat a pracovat s našimi API přímo prostřednictvím prohlížeče. V případě jakýchkoliv nejasností nás neváhejte kontaktovat na fóru.

Viz také