GDI+ Programming

  • Save image
        UINT size, numEncoders;
        ::Gdiplus::GetImageEncodersSize(&numEncoders,& size);
        ImageCodecInfo* pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
        ::Gdiplus::GetImageEncoders(numEncoders, size, pImageCodecInfo);
        const WCHAR* format = L"image/bmp";
    
        int idx = 0;        
        for (int i=0; i < numEncoders; i++) {
            if (wcscmp(pImageCodecInfo[i].MimeType, format) == 0 ) {
            idx = i;
            break;
        }    
    
        if (idx < numEncoders)
        {
            bmp.Save(L"test.bmp", &(pImageCodecInfo[idx].Clsid));
        }
    
        free(pImageCodecInfo);