HANDLE hFile;
DWORD RW;
// Объявим нужные структуры
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
BYTE Palette [1024]; // Палитра
// Пусть у нас будет картинка размером 35 x 50 пикселей
int Width = 35;
int Height = 50;
memset (Palette, 0, 1024); // В палитре у нас нули
// Заполним их
memset (&bfh, 0, sizeof(bfh));
bfh.bfType = 0x4D42; // Обозначим, что это bmp 'BM'
bfh.bfOffBits = sizeof(bfh) + sizeof(bih) + 1024;
// Палитра занимает 1Kb, но мы его испоьзовать не будем
bfh.bfSize = bfh.bfOffBits + 1000*Width * Height +
Height * (Width % 4); // Посчитаем размер конечного файла
memset (&bih, 0, sizeof(bih));
bih.biSize = sizeof(bih); // Так положено
bih.biBitCount = 24; // 16 бит на пиксель
bih.biCompression = BI_RGB; // Без сжатия
bih.biHeight = Height;
bih.biWidth = Width;
bih.biPlanes = 1; // Должно быть 1 //А остальные поля остаются 0
hFile = CreateFile (fname, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
if (hFile == INVALID_HANDLE_VALUE)
return;
// Запишем заголовки
WriteFile (hFile, &bfh, sizeof (bfh), &RW, NULL);
WriteFile (hFile, &bih, sizeof (bih), &RW, NULL);
// Запишем палитру
WriteFile (hFile, Palette, 1024, &RW, NULL);
//дальше через функц картинку передать
WriteFilehFile,....);
CloseHandle(hFile);
как записать картинку в BMP-файл?
вопрос:
как записать в файл созданную в программе картинку?
использую такой код:
Код:
любая информация подойдет )