如何保存1 BPP,4 BPP和8BPP图像

时间:2011-09-20 09:16:17

标签: c++ windows winapi visual-c++

任何人都可以告诉我如何将1BPP,4BPP和8BPP保存为Bitmap。我有图像,宽度和高度的位。

请告诉我如何将其保存为位图。

3 个答案:

答案 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它应该有效!