开发者

How to save 1 BPP, 4 BPP and 8BPP image

开发者 https://www.devze.com 2023-04-06 06:30 出处:网络
Can any one let me know how to save 开发者_运维技巧1BPP ,4BPP and 8BPP as Bitmap. I have bits in the image, width and height.

Can any one let me know how to save 开发者_运维技巧1BPP , 4BPP and 8BPP as Bitmap. I have bits in the image, width and height.

Please let me know how to save that as bitmap.


For Windows and C++, the easiest way is Gdiplus. Here's some pseudo code.

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;

You can get a list of pixel formats defined by GDI plus here.

Most of what you need is defined by the Bitmap class, which inherits from the Image class, which defines the Save method.

The encoder clsid, required by the "save" method is a bit tricky to get. But see my posting here on how to acquire this value.


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

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

Change to parameter in Create() appropriately.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号