2011-09-20 161 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()中的參數。