Файл BMP состоит из 3 структур. BITMAPFILEHEADER, за которым следует BITMAPINFO, за которым следует массив байтов.
Абсолютно самый простой способ загрузить файл BMP с помощью Win32 - вызвать CreateFile, GetFileSize, ReadFile и CloseHandle, чтобы загрузить изображение файла в память, а затем просто привести указатель на буфер к BITMAPFILEHEADER и перейти оттуда. 1003 *
Я лгу, более простой способ - вызвать LoadImage. Убедитесь, что передан флаг LR_DIBSECTION, чтобы гарантировать, что GDI не преобразует загруженное изображение в ту битовую глубину, на которую настроен ваш основной дисплей. Это дает вам преимущество, заключающееся в том, что вы получаете HBITMAP, который вы можете выбрать в DC и, следовательно, рисовать с помощью GDI.
Однако, чтобы сохранить его, ярлыка нет. Вам нужно подготовить BITMAPFILEHEADER, выписать его, заполнить структуру BITMAPINFO, выписать это, а затем фактические данные пикселей.