Auflisten installierter Encoder
GDI+ stellt die GetImageEncoders-Funktion bereit, damit Sie bestimmen können, welche Bildencoder auf Ihrem Computer verfügbar sind. GetImageEncoders gibt ein Array von ImageCodecInfo-Objekten zurück. Bevor Sie GetImageEncoders aufrufen, müssen Sie einen Puffer zuordnen, der groß genug ist, um dieses Array zu empfangen. Sie können GetImageEncodersSize aufrufen, um die Größe des erforderlichen Puffers zu bestimmen.
Die folgende Konsolenanwendung listet die verfügbaren Bildencoder auf:
#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;
}
Wenn Sie die vorherige Konsolenanwendung ausführen, ähnelt die Ausgabe der folgenden:
image/bmp
image/jpeg
image/gif
image/tiff
image/png