Нужны биты с независимыми от устройства битами

Я строю DLL в C++ для импорта в проект VB. DLL предоставляет функцию, которая извлекает изображение предварительного просмотра указанного документа через оболочку Win, а затем записывает его в буфер, который будет использоваться приложением VB.

Пока что я могу получить ручку HBITMAP без проблем. Я также смог извлечь данные растрового изображения с помощью функции GetBitmapBits. Однако это не сработает, поскольку объект, которому требуются битовые данные, должен иметь независимый от устройства формат.

Я читал, что GetDiBits - это функция, используемая для этой цели, но мне трудно понять, как успешно вызвать функцию.

Какой контекст устройства я должен использовать? Кроме того, как я могу гарантировать, что он записывает данные в независимом от устройства формате?

Заранее спасибо.

1 ответ

Если ваш HBITMAP ссылается на бит-карту, зависящую от устройства, и вам нужны биты, не зависящие от устройства, вы должны конвертировать их. Попробуйте создать CImage и вызвать метод BitBlt, чтобы поместить в него независимые от устройства биты.

Другие вопросы по тегам