| 
            
            
             
              // 创建位图并绘制 Bitmap bitmap(200, 200); Graphics gbmp(&bitmap); SolidBrush brush(Color(0, 255, 255)); gbmp.FillRectangle(&brush, 10, 10, 150, 150);
  // 保存为bmp文件 // 图像中未绘制的部分自动变成黑色 CLSID id, id2; GetEncoderClsid(L"image/bmp", &id); bitmap.Save(TEXT("myimage.bmp"), &id);
  brush.SetColor(Color(255, 0, 255)); gbmp.FillRectangle(&brush, 40, 40, 80, 80);
  // 保存为png文件 // 图像中未绘制的部分自动变为透明 GetEncoderClsid(L"image/png", &id2); bitmap.Save(TEXT("myimage.png"), &id2);
 
  // 其中GetEncoderClsid函数不是自带的,要自己定义 int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) {    UINT  num = 0;          // number of image encoders    UINT  size = 0;         // size of the image encoder array in bytes
     ImageCodecInfo* pImageCodecInfo = NULL;
     GetImageEncodersSize(&num, &size);    if(size == 0)       return -1;  // Failure
     pImageCodecInfo = (ImageCodecInfo*)(malloc(size));    if(pImageCodecInfo == NULL)       return -1;  // Failure
     GetImageEncoders(num, size, pImageCodecInfo);
     for(UINT j = 0; j < num; ++j)    {       if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )       {          *pClsid = pImageCodecInfo[j].Clsid;          free(pImageCodecInfo);          return j;  // Success       }        }
     free(pImageCodecInfo);    return -1;  // Failure }              
                       |