任何人都可以告诉我如何将1BPP,4BPP和8BPP保存为Bitmap。我有图像,宽度和高度的位。
请告诉我如何将其保存为位图。
答案 0 :(得分: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方法。
“save”方法所需的编码器clsid有点棘手。但请参阅我的帖子here,了解如何获取此值。
答案 1 :(得分:0)
ATL::CImage* image_ = new CImage();
image_ -> Create( rect.right - rect.left, rect.bottom - rect.top, 32 );
...
image_ -> Save( filename );
delete image_;
适当地更改为Create()中的参数。
答案 2 :(得分:0)
How to save bitmap to file?如果您在阅读后可以对此代码进行一些调整 Bitmap types - MSDN它应该有效!