Вопрос № 19427: Привет!
Имеется bitmap, созданный CreateCompatibleBitmap, как скопировать его в память по адресу lpMem. Что бы один даблворд определял один пиксель.
Спасибо....
Вопрос № 19427
Привет!
Имеется bitmap, созданный CreateCompatibleBitmap, как скопировать его в память по адресу lpMem. Что бы один даблворд определял один пиксель.
Спасибо.
Отправлен: 09.04.2005, 14:22
Вопрос задал: Торба Андрей Николаевич (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: Raptor1
Здравствуйте, Торба Андрей Николаевич!
Как скопировать показано в приложении, важно, чтобы он был нужного вормата, т.е. с 8-битным каналом цвета, это можно проверить с помощью bmBitsPixel структуры BITMAP, если ваш bitmap имеет другой формат возможно стоит его создавать функцией CreateBitmapIndirect или CreateDIBitmap, это можно сделать к примеру так
DWORD i;
LPDWORD lpBuffer;
BITMAP b;
b.bmHeight=100;
b.bmWidth=100;
b.bmBitsPixel=32;
b.bmType=0;
b.bmPlanes=1;
lpBuffer=new DWORD[100*100];
b.bmBits=lpBuffer;
for(i=0;i<100*100;i++)
{
lpBuffer[i]=0x0000ff00;
}
m_bmpPict.CreateBitmapIndirect(&b);
delete [] lpBuffer;
Приложение:
Ответ отправил: Raptor1 (статус: 3-ий класс)
Отправлен: 10.04.2005, 11:54
Отвечает: Bob Johnson
Здравствуйте, Торба Андрей Николаевич! Compatible Bitmap будет в формате устройства, с которым он совместим. в общем случае тебе нужно создать другой, Device Independent битмап и в него скопировать. Для этого есть функция CreateDIBSection.
* EMan2.0: ---===*** Debug mode ***===---
Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 11.04.2005, 00:02