Суббота, 04 Мая 2024, 10:34

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Вывод на экран Bitplane (Нужна помощь!)
Вывод на экран Bitplane
knight_of_honorДата: Четверг, 18 Августа 2011, 20:07 | Сообщение # 1
Darrell Lance Abbott (Dimebag Darrell)
Сейчас нет на сайте
Имеется код подгрузки Bmp файла 24-бита.Заносит информацию в массив чаров data.Перерыл весь гугл,пролопатил кучу текста,но ни один способ по выводу на экран не работает.Прошу помочь мне,если можно готовым исходником.Работаю в Dev c++.Не использую Glaux,Glut и прочие.Ниже привожу код подгрузки bmp(только подгрузки)
Code
int toFour(int v)
{
    for(;;++v)
    {
       if(v%4 == 0)
       return v;
    }
}
Функция округления к ближайшему большему числу,делящемуся на четыре.
Code
BITMAPFILEHEADER bfh;
      BITMAPINFOHEADER bih;
        
      char* tmp;
      char* data;
        
        
        
      ifstream f;
        
      f.open(FILE , ios::binary);

      f.read((char*)&bfh,sizeof(BITMAPFILEHEADER));
        
      f.read((char*)&bih,sizeof(BITMAPINFOHEADER));
        
      tmp = new char[(bfh.bfSize-bfh.bfOffBits)];
        
      cout<<"First pos = "<<f.tellg()<<endl;
        
      f.seekg (bfh.bfOffBits,ios::beg);
        
      cout<<"bfh.bfOffBits = "<<bfh.bfOffBits<<endl;
        
      cout<<"Second pos = "<<f.tellg()<<endl;
        
      f.read(tmp,bfh.bfSize-bfh.bfOffBits);
        
      data = new char[bih.biHeight*bih.biWidth*bih.biBitCount/8];
        
      int c = 1;
      int j = 0;
        
      ofstream log;
        
      log.open("log.txt");
        
      for (int i = 0;i<bfh.bfSize-bfh.bfOffBits;)
      {
          if (c <= bih.biWidth)
          {
              data[j+2] = tmp[i++];
              data[j+1] = tmp[i++];
              data[j] = tmp[i++];
              j+=3;               
          }
          else{
          i+=toFour(bih.biWidth)-bih.biWidth;
          c = 1;
          }
          log<<"c = "<<c<<endl;
          log<<"i = "<<i<<endl;
          log<<"j = "<<j<<endl<<endl;
          ++c;
      }
Код подгрузки(имя файла определить дефайном - FILE)
help :help: help :help: help :help: help :help:


Сообщение отредактировал knight_of_honor - Четверг, 18 Августа 2011, 20:08
Форум игроделов » Программирование » C/C++ » Вывод на экран Bitplane (Нужна помощь!)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг