다음을 통해 공유


Image::GetAllPropertyItems 메서드(gdiplusheaders.h)

Image::GetAllPropertyItems 메서드는 이 Image 개체에 저장된 모든 속성 항목(메타데이터)을 가져옵니다.

구문

Status GetAllPropertyItems(
  [in]  UINT         totalBufferSize,
  [in]  UINT         numProperties,
  [out] PropertyItem *allItems
);

매개 변수

[in] totalBufferSize

형식: UINT

allItems 버퍼의 크기(바이트)를 지정하는 정수입니다. 필요한 크기를 얻으려면 Image::GetPropertySize 메서드를 호출합니다.

[in] numProperties

형식: UINT

이미지의 속성 수를 지정하는 정수입니다. Image::GetPropertySize 메서드를 호출하여 이 숫자를 가져옵니다.

[out] allItems

형식: PropertyItem*

속성 항목을 수신하는 PropertyItem 개체의 배열에 대한 포인터입니다.

반환 값

형식: 상태

메서드가 성공하면 Status 열거형의 요소인 확인을 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

일부 이미지 파일에는 이미지의 기능을 확인하기 위해 읽을 수 있는 메타데이터가 포함되어 있습니다. 예를 들어 디지털 사진에는 이미지를 캡처하는 데 사용되는 카메라의 메이크 및 모델을 결정하기 위해 읽을 수 있는 메타데이터가 포함될 수 있습니다.

GDI+는 PropertyItem 개체에 개별 메타데이터를 저장합니다. Image::GetAllPropertyItems 메서드는 PropertyItem 개체의 배열을 반환합니다. Image::GetAllPropertyItems를 호출하기 전에 해당 배열을 받을 수 있을 만큼 큰 버퍼를 할당해야 합니다. Image 개체의 Image::GetPropertySize 메서드를 호출하여 필요한 버퍼의 크기를 바이트 단위로 가져올 수 있습니다. Image::GetPropertySize 메서드는 이미지의 속성 수(메타데이터)도 제공합니다.

이미지 메타데이터와 관련된 여러 열거형 및 상수는 Gdiplusimaging.h에 정의되어 있습니다.

예제

다음 예제에서는 JPEG 파일을 기반으로 Image 개체를 만듭니다. 코드는 해당 Image 개체의 GetAllPropertyItems 메서드를 호출하여 해당 속성 항목(메타데이터)을 가져옵니다.

#include <windows.h>
#include <gdiplus.h>
#include <stdio.h>
using namespace Gdiplus;

INT main()
{
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   // Create an Image object based on a JPEG file.
   Image* image = new Image(L"FakePhoto.jpg"); 

   // Find out how many property items are in the image, and find out the
   // required size of the buffer that will receive those property items.
   UINT totalBufferSize;
   UINT numProperties;
   image->GetPropertySize(&totalBufferSize, &numProperties);

   // Allocate the buffer that will receive the property items.
   PropertyItem* pAllItems = (PropertyItem*)malloc(totalBufferSize);

   // Fill the buffer.
   image->GetAllPropertyItems(totalBufferSize, numProperties, pAllItems);

// Print the id data member of each property item.
   for(UINT j = 0; j < numProperties; ++j)
   {
      printf("%x\n", pAllItems[j].id);
   }

   free(pAllItems);
   delete image;
   GdiplusShutdown(gdiplusToken);
   return 0;
}

위의 코드는 특정 파일과 함께 FakePhoto.jpg 다음 출력을 생성했습니다.

320
10f
110
9003
829a
5090
5091

앞의 출력에는 각 속성 항목에 대한 16진수 ID 번호가 표시됩니다. Gdiplusimaging.h에서 해당 ID 번호를 조회하고 다음 속성 태그를 나타내는지 확인할 수 있습니다.

16 진수 값 속성 태그
0x0320 PropertyTagImageTitle
0x010f PropertyTagEquipMake
0x0110 PropertyTagEquipModel
0x9003 PropertyTagExifDTOriginal
0x829a PropertyTagExifExposureTime
0x5090 PropertyTagLuminanceTable
0x5091 PropertyTagChrominanceTable
 

요구 사항

   
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 gdiplusheaders.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

참고 항목

이미지

이미지::GetPropertyCount

이미지::GetPropertyIdList

이미지::GetPropertyItem

이미지::GetPropertyItemSize

이미지::GetPropertySize

이미지::RemovePropertyItem

이미지::SetPropertyItem

PropertyItem

메타데이터 읽기 및 쓰기