Форум программистов, компьютерный форум CyberForum.ru

Чтение BMP - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Tilk
 Аватар для Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
16.11.2010, 07:28     Чтение BMP #1
Всем привет. Пытаюсь прочитать данные BMP из файла размером 50 на 25 и поставить их в соотвествие массиву по условию - true если пиксель желтый (255, 255, 0) и false во всех остальных случаях.

Использую код приведенный ниже. Результат работы программы - найдено достаточно много желтых пикселей, но расположение некорректное.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void Gameplay::ReadPlaceFromFile()
{
    FILE * pFile;
    long lSize;
    size_t result;
    char* tbmpbuffer;
    BITMAPFILEHEADER        tBMP;
    const char filename[] = "Data/test.bmp";
 
    pFile = fopen(filename , "rb" );
    if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
 
    fseek (pFile , 0 , SEEK_END);
    lSize = ftell (pFile);
    rewind (pFile);
 
    tbmpbuffer = (char*) malloc (sizeof(char)*lSize);
    if (tbmpbuffer == NULL) {fputs ("Memory error",stderr); exit (2);}
 
    result = fread (tbmpbuffer,1,lSize,pFile);
    if (result != (size_t)lSize) {fputs ("Reading error",stderr); exit (3);}
 
    memcpy(&tBMP,tbmpbuffer,sizeof(BITMAPFILEHEADER));
 
    fclose (pFile);
 
    unsigned char C;
    int r, g, b;
 
    for(int i=0;i<50;i++)
    for(int j=0;j<25;j++)
    {
        memcpy(&C,tbmpbuffer + tBMP.bfOffBits + 0 + i*3 + 150*j, 1);
        r = C;
        memcpy(&C,tbmpbuffer + tBMP.bfOffBits + 1 + i*3 + 150*j, 1);
        g = C;
        memcpy(&C,tbmpbuffer + tBMP.bfOffBits + 2 + i*3 + 150*j, 1);
        b = C;
 
        if(r == 255 && g == 255)
            testworld[i][j] = true;
        else 
            testworld[i][j] = false;
    }
}
Объявление testworld.

C++
1
bool testworld[50][25];
Файл для чтения приложен. (Запаковал в архив, т.к. в чистом виде bmp не допускается)
Вложения
Тип файла: rar test.rar (383 байт, 46 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2010, 07:28     Чтение BMP
Посмотрите здесь:

C++ bmp (24 битный)
C++ bmp в C++
Считывание bmp C++
C++ Работа с BMP-файлами (класс "8 битное BMP изображение)
Чтение BMP изобржений C++
C++ bmp 8
Стеганография в BMP C++
Чтение BMP файла и его обработка C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru