Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

как записать картинку в BMP-файл?

13K
30 ноября 2007 года
MXM
22 / / 16.08.2006
привет всем!)
вопрос:
как записать в файл созданную в программе картинку?
использую такой код:
Код:
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);

любая информация подойдет )
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог