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

На языке СИ++ написать программу,Выполняющую следующие операции: - C++

Восстановить пароль Регистрация
 
hard1337
0 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 19
18.07.2013, 22:58     На языке СИ++ написать программу,Выполняющую следующие операции: #1
На языке СИ++ написать программу,Выполняющую следующие операции:

Ввод рисунка из файла *.bmp.
Подсчет общего числа пикселей в строке,столбце матрицы рисунка.
Подсчет числа пикселей каждого цвета в рисунке.
Вывод этих значений на экран.

__
отблагодарю как смогу.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2013, 22:58     На языке СИ++ написать программу,Выполняющую следующие операции:
Посмотрите здесь:

C++ Написать консольную программу , выполняющую следующие действия
Написать программу, выполняющую следующие действия: C++
C++ Написать программу,выполняющую следующие действия:
C++ Написать программу,выполняющую следующие действия:
C++ Написать программу,выполняющую следующие действия:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 07:46     На языке СИ++ написать программу,Выполняющую следующие операции: #2
если не критично по времени выполнения, можно открыть рисунок, пойти по нему, по ходу скидывая каждый пиксель (без дублирования) в мапу. делов то
hard1337
0 / 0 / 0
Регистрация: 14.09.2012
Сообщений: 19
19.07.2013, 12:08  [ТС]     На языке СИ++ написать программу,Выполняющую следующие операции: #3
В Сентябре нужно сдать, поможешь?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11835 / 6814 / 769
Регистрация: 27.09.2012
Сообщений: 16,887
Записей в блоге: 2
Завершенные тесты: 1
19.07.2013, 12:11     На языке СИ++ написать программу,Выполняющую следующие операции: #4
Википедия: формат BMP
Kukurudza
105 / 86 / 6
Регистрация: 29.08.2012
Сообщений: 539
19.07.2013, 13:48     На языке СИ++ написать программу,Выполняющую следующие операции: #5
как нить накидаю.

Добавлено через 1 час 35 минут
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
int main() {
    BITMAPFILEHEADER bitMapFileHeader;
    BITMAPINFOHEADER bitMapInfoHeader;
 
    FILE* file;
    fopen_s(&file, "D:\\picture.bmp", "r");
    fread((void*)&bitMapFileHeader, sizeof(BITMAPFILEHEADER), 1, file);
    fread((void*)&bitMapInfoHeader, sizeof(BITMAPINFOHEADER), 1, file);
 
    void* buffer = new unsigned char[bitMapInfoHeader.biSize];
    const int pixelsNum = bitMapInfoHeader.biWidth * bitMapInfoHeader.biHeight;
    const size_t bitPerPixel = bitMapInfoHeader.biBitCount / 8;
    unsigned int pixel = 0;
 
    std::set<unsigned int> set;
 
    for (int i = pixelsNum - 1; i >= 0; --i) {
        fread((void*)&pixel, bitPerPixel, 1, file);
        set.insert(pixel);
    }
 
    std::copy(set.begin(), set.end(), std::ostream_iterator<int>(std::cout, "\n"));
 
    return 0;
}
количество разных пикселей не выводит. доделать не сложно. работает ессно долго. на нобелевскую премию не претендую. мест для оптимизации и улучшений миллион. рисовал в паинте прямоугольнички. если рисуете карандашиком например красный цвет, то если увеличить картиночку то увидите несколько оттенков красненького. а квадратики дают именно один цвет.
Yandex
Объявления
19.07.2013, 13:48     На языке СИ++ написать программу,Выполняющую следующие операции:
Ответ Создать тему
Опции темы

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