Я хотел бы создать растровое изображение, превратив массив в растровое изображение. Сначала я создаю растровое изображение из данных:
BITMAPINFO info;
info.bmiHeader.biBitCount = 32;
info.bmiHeader.biClrImportant = 0;
info.bmiHeader.biClrUsed = 0;
info.bmiHeader.biCompression = BI_RGB;
info.bmiHeader.biHeight = -height(windowSize);
info.bmiHeader.biPlanes = 1;
info.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
info.bmiHeader.biSizeImage = 0;
info.bmiHeader.biWidth = width(windowSize);
info.bmiHeader.biXPelsPerMeter = 100;
info.bmiHeader.biYPelsPerMeter = 100;
Gdiplus::Bitmap *b = new Bitmap(&info, (void *)field);
А потом я пытаюсь нарисовать его на экране, но он содержит только черный цвет:
Gdiplus::Graphics *graphics = new Gdiplus::Graphics(hdc);
...
graphics->DrawImage(<pointer to bitmap>, 0, 0);
В настоящее время массив содержит 32 бита данных на пиксель, по 8 бит на каждый компонент. Красный компонент сдвинут на 24 бита влево, зеленый сдвинут на 16 бит влево, а синий смещен на 8 бит влево.
Я могу заверить вас, что массив полей содержит данные, в которых цвета не все черные. У кого-нибудь есть идеи, что я делаю не так?