谁能让我知道如何将1BPP,4BPP和8BPP保存为位图。
请让我知道如何保存为位图。
发布于 2011-09-20 17:43:19
对于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,了解如何获取该值。
发布于 2011-09-20 19:07:26
ATL::CImage* image_ = new CImage();
image_ -> Create( rect.right - rect.left, rect.bottom - rect.top, 32 );
...
image_ -> Save( filename );
delete image_;相应地更改Create()中的参数。
https://stackoverflow.com/questions/7482811
复制相似问题