C#을 사용하여 이미지에서 메타데이터 추출

프로그래밍 방식으로 메타데이터 형태로 저장된 높이, 너비, 제조사, 모델 등과 같은 이미지 세부 정보를 추가, 편집, 제거 또는 추출할 수 있습니다. C# 개발자는 클라우드에서 프로그래밍 방식으로 이미지의 메타데이터 정보를 쉽게 추출하고 조작할 수 있습니다. 이 기사에서는 C#에서 REST API를 사용하여 이미지의 메타데이터를 추출하고 조작하는 방법을 배웁니다.

이 문서에서는 다음 항목에 대해 설명/다룹니다.

문서 메타데이터 조작 REST API 및 .NET SDK

JPEG 이미지의 메타데이터를 조작하기 위해 GroupDocs.Metadata Cloud의 .NET SDK API를 사용합니다. 문서 및 이미지 파일 형식에서 메타데이터 속성을 추가, 편집, 검색 및 제거할 수 있습니다. 검색 기준을 정의하기만 하면 메타데이터 Cloud REST API가 지원되는 파일 형식 내에서 지정된 메타데이터 작업을 처리합니다. 또한 Cloud API용 문서 메타데이터 조작 제품군으로 Java SDK를 제공합니다.

NuGet 패키지 관리자에서 또는 패키지 관리자 콘솔에서 다음 명령을 사용하여 GroupDocs.Metadata를 Visual Studio 프로젝트에 설치할 수 있습니다.

Install-Package GroupDocs.Metadata-Cloud

단계와 사용 가능한 코드 예제를 시작하기 전에 대시보드에서 클라이언트 ID와 클라이언트 암호를 얻으십시오. 클라이언트 ID와 시크릿이 있으면 아래와 같이 코드를 추가합니다.

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

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

C#에서 REST API를 사용하여 이미지에 메타데이터 추가

아래의 간단한 단계에 따라 이미지에 메타데이터를 추가할 수 있습니다.

이미지 업로드

먼저 아래 제공된 코드 샘플을 사용하여 클라우드에 JPEG 파일을 업로드합니다.

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

결과적으로 업로드된 JPEG 이미지 파일은 클라우드 대시보드의 파일 섹션에서 사용할 수 있습니다.

C#을 사용하여 이미지에 메타데이터 추가

아래 단계에 따라 프로그래밍 방식으로 JPEG 이미지에 메타데이터를 추가할 수 있습니다.

  • MetadataApi 인스턴스 만들기
  • FileInfo 모델에서 JPEG 이미지 파일 경로 설정
  • 추가 옵션 정의
  • AddProperty 모델을 사용하여 속성에 대한 Value 및 SearchCriteria 설정
  • AddOptions로 AddRequest 만들기
  • MetadataApi.Add() 메서드를 호출하여 결과 얻기

다음 코드 샘플은 REST API를 사용하여 JPEG 이미지에 메타데이터를 추가하는 방법을 보여줍니다.

// API 초기화
var apiInstance = new MetadataApi(configuration);

// 입력 이미지 경로
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// 메타데이터 추가 옵션 정의
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"
                }
            },
        }
    }
};

// 요청 추가
var request = new AddRequest(options);
var response = apiInstance.Add(request);
C#에서 REST API를 사용하여 이미지에서 메타데이터 추가

C#에서 REST API를 사용하여 이미지에서 메타데이터 추가

이미지 다운로드

위의 코드 샘플은 업데이트된 JPEG 파일을 클라우드에 저장하며 다음 코드 샘플을 사용하여 다운로드할 수 있습니다.

// API 초기화
var fileApi = new FileApi(configuration);

// 기본 경로
var file = "metadata\\add_metadata\\input_jpg\\input.jpg";

// 다운로드 요청
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);
}

C#을 사용하여 이미지의 메타데이터 업데이트

아래 단계에 따라 프로그래밍 방식으로 JPEG 이미지의 메타데이터를 업데이트할 수 있습니다.

  • MetadataApi 인스턴스 만들기
  • FileInfo 모델에서 JPEG 이미지 파일 경로 설정
  • SetOptions 정의
  • SetProperty 모델을 사용하여 속성에 대한 NewValue 및 SearchCriteria 설정
  • SetOptions로 SetRequest 만들기
  • MetadataApi.Set() 메서드를 호출하여 결과 얻기

다음 코드 샘플은 REST API를 사용하여 JPEG 이미지의 메타데이터를 설정하는 방법을 보여줍니다. 앞에서 언급한 단계에 따라 파일을 업로드하고 다운로드하십시오.

// API 초기화
var apiInstance = new MetadataApi(configuration);

// 입력 이미지 경로
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// 메타데이터 세트 옵션 정의
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"
        }
    }
};

// 업데이트 요청
var request = new SetRequest(options);
var response = apiInstance.Set(request);
C#에서 REST API를 사용하여 이미지에서 메타데이터 업데이트

C#에서 REST API를 사용하여 이미지에서 메타데이터 업데이트

C#을 사용하여 이미지에서 메타데이터 제거

아래 단계에 따라 프로그래밍 방식으로 JPEG 이미지에서 메타데이터를 제거할 수 있습니다.

  • MetadataApi 인스턴스 만들기
  • FileInfo 모델에서 JPEG 이미지 파일 경로 설정
  • RemoveOptions 정의
  • 검색 기준 설정
  • RemoveOptions로 RemoveRequest 만들기
  • MetadataApi.Remove() 메서드를 호출하여 결과 얻기

다음 코드 샘플은 REST API를 사용하여 JPEG 이미지에서 메타데이터를 제거하는 방법을 보여줍니다. 앞에서 언급한 단계에 따라 파일을 업로드하고 다운로드하십시오.

// API 초기화
var apiInstance = new MetadataApi(configuration);

// 입력 이미지 경로
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// 메타데이터 제거 옵션 정의
var options = new RemoveOptions
{
    FileInfo = fileInfo,
    SearchCriteria = new SearchCriteria
    {
        TagOptions = new TagOptions
        {
            PossibleName = "Copyright"
        }
    }
};

// 요청 제거
var request = new RemoveRequest(options);
var response = apiInstance.Remove(request);
C#에서 REST API를 사용하여 이미지에서 메타데이터 제거

C#에서 REST API를 사용하여 이미지에서 메타데이터 제거

C#을 사용하여 이미지에서 메타데이터 추출

아래 단계에 따라 프로그래밍 방식으로 JPEG 이미지에서 메타데이터를 추출할 수 있습니다.

  • MetadataApi 인스턴스 만들기
  • FileInfo 모델에서 JPEG 이미지 파일 경로 설정
  • 추출 옵션 정의
  • ExtractOptions로 ExtractRequest 만들기
  • MetadataApi.Extract() 메서드를 호출하여 결과 얻기

다음 코드 샘플은 REST API를 사용하여 JPEG 이미지에서 메타데이터를 추출하는 방법을 보여줍니다. 앞에서 언급한 단계에 따라 파일을 업로드하십시오.

// API 초기화
var apiInstance = new MetadataApi(configuration);

// 소스 파일
var fileInfo = new GroupDocs.Metadata.Cloud.Sdk.Model.FileInfo
{
    FilePath = "input.jpg"
};

// 추출 옵션
var options = new ExtractOptions
{
    FileInfo = fileInfo
};

// 추출 요청
var request = new ExtractRequest(options);
var response = apiInstance.Extract(request);

// 추출된 메타데이터
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);
        }
    }
}
이미지 메타데이터

이미지 메타데이터

위의 코드 샘플은 다음 출력을 생성합니다.

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

온라인 시도

위의 API를 사용하여 개발된 다음 JPEG 메타데이터 조작 무료 온라인 도구를 사용해 보십시오. https://products.groupdocs.app/metadata/jpeg

결론

이 기사에서는 클라우드의 이미지에서 메타데이터를 추가, 편집, 제거 및 추출하는 방법을 배웠습니다. 이 기사에서는 프로그래밍 방식으로 JPEG 이미지 파일을 클라우드에 업로드하고 클라우드에서 다운로드하는 방법도 설명했습니다. 문서를 사용하여 GroupDocs.Metadata Manipulation Cloud API에 대해 더 자세히 알아볼 수 있습니다. 또한 브라우저를 통해 직접 API를 시각화하고 상호 작용할 수 있는 API 참조 섹션을 제공합니다. 모호한 점이 있으면 언제든지 포럼에 문의해 주십시오.

또한보십시오