2011-09-20 162 views

回答

1

对于Windows和C++,最简单的方法是Gdiplus。这里有一些伪代码。

Gdiplus::Bitmap* pBmp = new Gdiplus::Bitmap(width, height, pixelformat); 
pBmp->SetPalette(...); // initialize palette for 8bpp formats and less 
pBmp->LockBits(...); // acquire the bitmap buffer 

// copy your binary image data into the buffer 

pBmp->UnlockBits(...); // return the buffer 

pBmp->Save(filename, &clsidBMP, NULL); 

delete pBmp; 

您可以得到由GDI定义的像素格式列表加上here

您需要的大部分内容由Bitmap类定义,该类继承自Image类,该类定义了Save方法。

“保存”方法所需的编码器clsid有点棘手。但请参阅我的帖子here了解如何获取此值。

0
ATL::CImage* image_ = new CImage(); 
image_ -> Create(rect.right - rect.left, rect.bottom - rect.top, 32); 

... 
image_ -> Save(filename); 
delete image_; 

相应地更改为Create()中的参数。