Mencantumkan Dekode Terinstal

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

Aplikasi konsol berikut mencantumkan dekode 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 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;
}

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

image/bmp
image/jpeg
image/gif
image/x-emf
image/x-wmf
image/tiff
image/png
image/x-icon