Wyodrębnij metadane z obrazów za pomocą C#

Możesz programowo dodawać, edytować, usuwać lub wyodrębniać szczegóły obrazu, takie jak wysokość, szerokość, marka, model itp. przechowywane w formie metadanych. Jako programista języka C# możesz łatwo programowo wyodrębniać informacje o metadanych obrazów w chmurze i nimi manipulować. W tym artykule dowiesz się, jak wyodrębniać metadane obrazów i manipulować nimi za pomocą interfejsu API REST w języku C#.

W tym artykule omówiono/omówiono następujące tematy:

Interfejs API REST do manipulowania metadanymi dokumentów i pakiet .NET SDK

Do manipulowania metadanymi obrazów JPEG będę używać API .NET SDK GroupDocs.Metadata Cloud. Pozwala dodawać, edytować, pobierać i usuwać właściwości metadanych z dokumentów i formatów plików graficznych. Wystarczy zdefiniować kryteria wyszukiwania, a Cloud REST API metadanych zajmie się określonymi operacjami na metadanych w obsługiwanych formatach plików. Udostępnia również Java SDK jako członkowie rodziny manipulacji metadanymi dokumentów dla Cloud API.

Możesz zainstalować GroupDocs.Metadata w swoim projekcie Visual Studio z Menedżera pakietów NuGet lub za pomocą następującego polecenia w konsoli Menedżera pakietów:

Install-Package GroupDocs.Metadata-Cloud

Zanim zaczniesz postępować zgodnie z instrukcjami i dostępnymi przykładami kodu, uzyskaj swój identyfikator klienta i klucz tajny klienta z pulpitu nawigacyjnego. Po uzyskaniu identyfikatora klienta i klucza tajnego dodaj kod, jak pokazano poniżej:

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

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

Dodaj metadane do obrazów za pomocą interfejsu API REST w języku C#

Możesz dodać metadane do obrazów, wykonując proste czynności podane poniżej:

Prześlij obraz

Najpierw prześlij plik JPEG do chmury, korzystając z przykładowego kodu podanego poniżej:

// inicjalizacja 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();
}

W rezultacie przesłany plik obrazu JPEG będzie dostępny w sekcji plików pulpitu nawigacyjnego w chmurze.

Dodaj metadane do obrazu za pomocą C#

Możesz programowo dodać metadane do obrazu JPEG, wykonując czynności podane poniżej.

  • Utwórz instancję MetadataApi
  • Ustaw ścieżkę pliku obrazu JPEG w modelu FileInfo
  • Zdefiniuj AddOptions
  • Ustaw wartość i kryteria wyszukiwania dla właściwości przy użyciu modelu AddProperty
  • Utwórz AddRequest za pomocą AddOptions
  • Uzyskaj wyniki, wywołując metodę MetadataApi.Add().

Poniższy przykładowy kod pokazuje, jak dodać metadane do obrazu JPEG przy użyciu interfejsu API REST.

// inicjalizacja API
var apiInstance = new MetadataApi(configuration);

// wprowadź ścieżkę obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// zdefiniuj opcje dodawania metadanych
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"
                }
            },
        }
    }
};

// dodaj prośbę
var request = new AddRequest(options);
var response = apiInstance.Add(request);
Dodaj metadane z obrazów przy użyciu interfejsu API REST w języku C#

Dodaj metadane z obrazów przy użyciu interfejsu API REST w języku C#

Pobierz obraz

Powyższe przykłady kodu spowodują zapisanie zaktualizowanego pliku JPEG w chmurze i można je pobrać przy użyciu następującego przykładowego kodu:

// inicjalizacja API
var fileApi = new FileApi(configuration);

// domyślna ścieżka
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// żądanie pobrania
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);
}

Zaktualizuj metadane obrazu za pomocą C#

Metadane obrazu JPEG można aktualizować programowo, wykonując czynności podane poniżej.

  • Utwórz instancję MetadataApi
  • Ustaw ścieżkę pliku obrazu JPEG w modelu FileInfo
  • Zdefiniuj SetOptions
  • Ustaw NewValue i SearchCriteria dla właściwości przy użyciu modelu SetProperty
  • Utwórz SetRequest za pomocą SetOptions
  • Uzyskaj wyniki, wywołując metodę MetadataApi.Set().

Poniższy przykładowy kod pokazuje, jak ustawić metadane obrazu JPEG przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać i pobrać plik.

// inicjalizacja API
var apiInstance = new MetadataApi(configuration);

// wprowadź ścieżkę obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// zdefiniuj opcje zestawu metadanych
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"
        }
    }
};

// żądanie aktualizacji
var request = new SetRequest(options);
var response = apiInstance.Set(request);
Zaktualizuj metadane z obrazów przy użyciu interfejsu API REST w języku C#

Zaktualizuj metadane z obrazów przy użyciu interfejsu API REST w języku C#

Usuń metadane z obrazu za pomocą C#

Możesz programowo usunąć metadane z obrazu JPEG, wykonując czynności podane poniżej.

  • Utwórz instancję MetadataApi
  • Ustaw ścieżkę pliku obrazu JPEG w modelu FileInfo
  • Zdefiniuj opcje usuwania
  • Ustaw kryteria wyszukiwania
  • Utwórz RemoveRequest za pomocą opcji RemoveOptions
  • Uzyskaj wyniki, wywołując metodę MetadataApi.Remove().

Poniższy przykładowy kod pokazuje, jak usunąć metadane z obrazu JPEG przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać i pobrać plik.

// inicjalizacja API
var apiInstance = new MetadataApi(configuration);

// wprowadź ścieżkę obrazu
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// zdefiniuj opcje usuwania metadanych
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// usunąć prośbę
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
Usuń metadane z obrazów za pomocą interfejsu API REST w języku C#

Usuń metadane z obrazów za pomocą interfejsu API REST w języku C#

Wyodrębnij metadane z obrazu za pomocą C#

Możesz programowo wyodrębnić metadane z obrazu JPEG, wykonując czynności podane poniżej.

  • Utwórz instancję MetadataApi
  • Ustaw ścieżkę pliku obrazu JPEG w modelu FileInfo
  • Zdefiniuj opcje ekstraktu
  • Utwórz ExtractRequest za pomocą ExtractOptions
  • Uzyskaj wyniki, wywołując metodę MetadataApi.Extract().

Poniższy przykładowy kod pokazuje, jak wyodrębnić metadane z obrazu JPEG przy użyciu interfejsu API REST. Wykonaj czynności wymienione wcześniej, aby przesłać plik.

// inicjalizacja API
var apiInstance = new MetadataApi(configuration);

// Plik źródłowy
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// wyodrębnić opcje
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// wyciąg wniosek
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// wyodrębnione metadane
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);
        }
    }
}
Metadane obrazu

Metadane obrazu

Powyższy przykładowy kod wygeneruje następujące dane wyjściowe:

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[] 

Wypróbuj online

Wypróbuj następujące bezpłatne narzędzie online do manipulacji metadanymi JPEG, które zostało opracowane przy użyciu powyższego interfejsu API. https://products.groupdocs.app/metadata/jpeg

Wniosek

W tym artykule nauczyłeś się, jak dodawać, edytować, usuwać i wyodrębniać metadane z obrazów w chmurze. W tym artykule wyjaśniono również, jak programowo przesłać plik obrazu JPEG do chmury i pobrać go z chmury. Możesz dowiedzieć się jeszcze więcej o GroupDocs.Metadata Manipulation Cloud API korzystając z dokumentacji. Udostępniamy również sekcję Informacje o interfejsach API, która umożliwia wizualizację naszych interfejsów API i interakcję z nimi bezpośrednio w przeglądarce. W przypadku jakichkolwiek niejasności prosimy o kontakt na forum.

Zobacz też