설치된 디코더 나열
Windows GDI+는 컴퓨터에서 사용할 수 있는 이미지 디코더를 확인할 수 있도록 GetImageDecoders 함수를 제공합니다. GetImageDecoders 는 ImageCodecInfo 개체의 배열을 반환합니다. GetImageDecoder를 호출하기 전에 해당 배열을 받을 수 있을 만큼 큰 버퍼를 할당해야 합니다. GetImageDecodersSize를 호출하여 필요한 버퍼의 크기를 확인할 수 있습니다.
다음 콘솔 애플리케이션은 사용 가능한 이미지 디코더를 나열합니다.
#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 decoders
UINT size; // size, in bytes, of the image decoder array
ImageCodecInfo* pImageCodecInfo;
// How many decoders are there?
// How big (in bytes) is the array of all ImageCodecInfo objects?
GetImageDecodersSize(&num, &size);
// Create a buffer large enough to hold the array of ImageCodecInfo
// objects that will be returned by GetImageDecoders.
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
// GetImageDecoders 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.
GetImageDecoders(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/x-emf
image/x-wmf
image/tiff
image/png
image/x-icon