Несмотря на то, что фактическим форматом данных, считываемым WIC, можно управлять, обратите внимание, что формат независимого от устройства растрового изображения , обычно используемый для несжатых данных изображения (и содержащийся также в большинстве файлов BMP), сохраняет каждый пиксель в форматах 24BPP и 32BPP как один 24-разрядный или 32-битное слово с прямым порядком байтов .
Это изображение описывает little-endian довольно хорошо:
Изображение является общественным достоянием, по RS Шоу и получены из Викисклада
Как вы можете видеть, младший байт идет первым, а самый старший - последним. Значение 32BPP ARGB будет храниться в памяти и на диске как отдельные 8-битные байты B, G, R, A. То же самое относится и к значению 24BPP RGB, которое хранится в памяти как B, G, R.
Это, вероятно, объясняет, почему формат по умолчанию, используемый WIC, выглядит как "BGR" - потому что это представление по умолчанию в памяти, и преобразование в RGB с прямым порядком байтов будет дополнительной работой, которая не выполняется без явного запроса.
Между прочим, люди обычно читают числа как big-endian; в обратном порядке. Байт-байтовое представление того же слова 24BPP/32BPP читается как RGB или ARGB, ближе к тому, что вы, похоже, ожидаете.