다음을 통해 공유


설치된 인코더 나열

GDI+는 컴퓨터에서 사용할 수 있는 이미지 인코더를 확인할 수 있도록 GetImageEncoders 함수를 제공합니다. GetImageEncodersImageCodecInfo 개체의 배열을 반환합니다. GetImageEncoder를 호출하기 전에 해당 배열을 받을 수 있을 만큼 큰 버퍼를 할당해야 합니다. GetImageEncodersSize를 호출하여 필요한 버퍼의 크기를 확인할 수 있습니다.

다음 콘솔 애플리케이션에는 사용 가능한 이미지 인코더가 나열됩니다.

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

INT main()
{
   // Initialize GDI+.
   GdiplusStartupInput gdiplusStartupInput;
   ULONG_PTR gdiplusToken;
   GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

   UINT  num;        // number of image encoders
   UINT  size;       // size, in bytes, of the image encoder array

   ImageCodecInfo* pImageCodecInfo;

   // How many encoders are there?
   // How big (in bytes) is the array of all ImageCodecInfo objects?
   GetImageEncodersSize(&num, &size);

   // Create a buffer large enough to hold the array of ImageCodecInfo
   // objects that will be returned by GetImageEncoders.
   pImageCodecInfo = (ImageCodecInfo*)(malloc(size));

   // GetImageEncoders creates an array of ImageCodecInfo objects
   // and copies that array into a previously allocated buffer. 
   // The third argument, imageCodecInfo, is a pointer to that buffer. 
   GetImageEncoders(num, size, pImageCodecInfo);

   // Display the graphics file format (MimeType)
   // for each ImageCodecInfo object.
   for(UINT j = 0; j < num; ++j)
   { 
      wprintf(L"%s\n", pImageCodecInfo[j].MimeType);   
   }

   free(pImageCodecInfo);
   GdiplusShutdown(gdiplusToken);
   return 0;
}

이전 콘솔 애플리케이션을 실행하는 경우 출력은 다음과 유사합니다.

image/bmp
image/jpeg
image/gif
image/tiff
image/png