Mencantumkan Encoder Terinstal

GDI+ menyediakan fungsi GetImageEncoders sehingga Anda dapat menentukan encoder gambar mana yang tersedia di komputer Anda. GetImageEncoders mengembalikan array objek ImageCodecInfo . Sebelum Anda memanggil GetImageEncoders, Anda harus mengalokasikan buffer yang cukup besar untuk menerima array tersebut. Anda dapat memanggil GetImageEncodersSize untuk menentukan ukuran buffer yang diperlukan.

Aplikasi konsol berikut mencantumkan encoder gambar yang tersedia:

#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;
}

Saat Anda menjalankan aplikasi konsol sebelumnya, outputnya akan mirip dengan yang berikut ini:

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