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

Чтение BMP - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите выбрать компилятор С++ http://www.cyberforum.ru/cpp-beginners/thread191945.html
Всем Привет. Неделю назад я озадачился изучением С++. Читая книгу естественно намного лучше запоминать коды сразу печатая их. я вот только не смог определить какой компилятор практичней. На котором я смог бы, научится. И после не переучиваться из-за неправильной базы подготовки. Спасибо за внимание.
C++ Ошибка в методе, помогите исправить Помогите дописать 1 метод... Нужна функция-друг, которая позволяет вывести размер заработанной платы каждого сотрудника фирмы за вычетом подоходного налога,составляющего 12% от суммы заработка. Необходимо учесть, что рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Ошибка в методе totalzp, помогите поправить. #include <stdlib.h> #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread191942.html
СкАчУщИе БуКаФфКи C++
Интересен скрипт/программа которая за меня будет через букву менять регистр, но что бы она меняла в любых полях ввода, будь то аська, браузер или игра=) Ооооочень нужно=)
Concepts (C++0x) C++
Концепты По-моему должно было быть довольно мощное средство... Однако... Как вы относитесь к такому решению коммитета?
C++ Unhandled exception... http://www.cyberforum.ru/cpp-beginners/thread191929.html
Делал лабораторную работу....и вот уже битых часа 3 сиже немогу понять в чем проблема и как ее испрвить вот условие задачи 2. Даны действительная матрица размера n x (n+1), действительные числа a1, ..., an+1, b1, ..., bn+1, натуральные числа p, q, (p n, q n+1). Образовать новую матрицу размера (n+1) x (n+2) вставкой после стро-ки с номером p данной матрицы новой строки с элементами a1,...
C++ Eclipce, не компилируется программа Здравствуйте! Вот скачал Eclipce CDT, установил компилятор MinGW в корень с:\, прописал в path путь C:\j2sdk1.4.2_04\bin;C:\MinGW\bin. Тестовая программа: #include <iostream> int main() { ctd::cout << "Hello!\n"; подробнее

Показать сообщение отдельно
Tilk
 Аватар для Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
16.11.2010, 07:28     Чтение BMP
Всем привет. Пытаюсь прочитать данные 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 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru