http://msdn.microsoft.com/en-us/library/dd183449(VS.85).aspx
Это документацию для COLORREF, который хранится в 0x00BBGGRR.
В соответствии с тем, что используется большинством WINAPI, я должен был предположить, что все в Windows фактически хранится в формате BGRA .. AFAIK, DIBs находятся в формате BGRA.
Вы можете попробовать нарисовать красное окно. Создайте раздел DIB и скопируйте пиксели в буфер. Если первый байт равен 0xFF, это RGBA, иначе это BGRA.
Изображения GDI32 всегда хранятся как BGRA на моей машине. Изображения GDI24 всегда BGR. Я выпустил API обработки изображений и всех пользователей, я не встречал ни одного, у которого не было такого же формата. Я еще не видел формат backbuffer DC или default в RGBA вместо BGRA.
В чем причина, по которой вам действительно нужно знать формат DC? Я так и не узнал.
При чтении изображения вы вычисляете количество бит из поля BitmapInfoHeader.biBitCount.
На машинах с маленькими концами, я думаю, что это всегда BGRA, тогда как большой endian всегда ARBG iirc. Не уверен, но я знаю, что это соглашение для OpenGL, и многие api используют Windows. Также быстрее использовать BGRA на окнах. По этой причине, я считаю, что все на самом деле BGRA на окнах (на 5% быстрее). – Brandon