Нужны биты с независимыми от устройства битами
Я строю DLL в C++ для импорта в проект VB. DLL предоставляет функцию, которая извлекает изображение предварительного просмотра указанного документа через оболочку Win, а затем записывает его в буфер, который будет использоваться приложением VB.
Пока что я могу получить ручку HBITMAP без проблем. Я также смог извлечь данные растрового изображения с помощью функции GetBitmapBits. Однако это не сработает, поскольку объект, которому требуются битовые данные, должен иметь независимый от устройства формат.
Я читал, что GetDiBits - это функция, используемая для этой цели, но мне трудно понять, как успешно вызвать функцию.
Какой контекст устройства я должен использовать? Кроме того, как я могу гарантировать, что он записывает данные в независимом от устройства формате?
Заранее спасибо.
1 ответ
Если ваш HBITMAP ссылается на бит-карту, зависящую от устройства, и вам нужны биты, не зависящие от устройства, вы должны конвертировать их. Попробуйте создать CImage и вызвать метод BitBlt, чтобы поместить в него независимые от устройства биты.