Как сохранить изображение 1 BPP, 4 BPP и 8BPP - PullRequest
0 голосов
/ 20 сентября 2011

Может ли кто-нибудь сообщить мне, как сохранить 1BPP, 4BPP и 8BPP в качестве растрового изображения.У меня есть биты в изображении, ширина и высота.

Пожалуйста, дайте мне знать, как сохранить это как растровое изображение.

Ответы [ 3 ]

1 голос
/ 20 сентября 2011

Для 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, плюс здесь .

Большая часть того, что вам нужно, определяется Bitmap класс, который наследуется от класса Image, который определяет метод Save .

Код clsid, требуемый методом save, немного сложнее получить,Но см. Мою публикацию здесь о том, как получить это значение.

0 голосов
/ 20 сентября 2011

Как сохранить растровое изображение в файл? Если вы можете применить некоторые настройки к этому коду после прочтения Типы растровых изображений - MSDN , он должен работать!

0 голосов
/ 20 сентября 2011
ATL::CImage* image_ = new CImage();
image_ -> Create( rect.right - rect.left, rect.bottom - rect.top, 32 );

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

Правильно изменить параметр в Create ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...