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

Считывание bmp - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разложение косинуса в ряд тейлора http://www.cyberforum.ru/cpp-beginners/thread623925.html
Сам в шоке, но у меня не получается сделать это полноценно(хромает мат часть си у меня :confusion:). Пробовал по разному:то получается NAN, то ересь,то адская неточность. Пожалуйста дайте код нормальный,комментарии не нужны, всё-понятно... Результат печать столбиком х и наш cos x,от 0 до 2, с шагом 0.1. Спасибки! Добавлено через 10 минут Чуть не забыл,ограничиться не точностью,а 10ю...
C++ icq клиент Есть ли какие то исходники icq клиентов? http://www.cyberforum.ru/cpp-beginners/thread623920.html
Преобразование из строки юников в массив символов C++
Нужно преобразовать юникод строку в набор символов (массив чар). Как это реализовать? Цель: из эдита получаю текст и записываю в буфер char buffer; //и тут надо заполнить этот массив символами из эдита.
C++ Создание формы после нажатия кнопки
Мне нужно сделать так, чтобы форма создавалась только после нажатия кнопки (именно создавалась, то есть у меня уже есть готовая форма, нужно ее только создать и показать) на дельфи я бы сделал так Application.CreateForm(TForm,Form1); Form1.Show; Но на С++ такая тема не катит (использование похожей инструкции...) Как правильно создать форму?? можете помочь?
C++ Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную http://www.cyberforum.ru/cpp-beginners/thread623877.html
Есть метод класса внутри которого, посередине, есть проверка. Если условие сходится то метод должен выдать указатель на вектор, а если нет то вывести ошибку(мол проверьте правильность введенных данных). как это сделать можно?
C++ Как узнать, в процесе отладки, сколько памяти занимает программа? Вот чтобы проследить за тем сколько и когда программа занимает и какое количество килобайт под капие переменные.... Чтобы увидеть что занимается память при выделении динамической памяти и освобождается при удалении. подробнее

Показать сообщение отдельно
GaRRRiK
0 / 0 / 0
Регистрация: 14.05.2011
Сообщений: 10
15.07.2012, 08:05     Считывание bmp
Здравствуйте, мне надо считать изображение, содержащая только 2х цветную палитру, и просканировать картинку на наличие черных пикселей, если попался черный пиксель, вывести координаты и записать в двумерный массив. Считать разрешение картинки получилось. А прогнать цикл попиксельно не удается.
Зы, вот код того, как считываю разрешение
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <math.h>     ///////////////////////////////
#include <iostream>   ///////////////////////////////
#include <conio.h>    ///////////////////////////////
#include <time.h>     ////// Всякие библиотеки //////
#include <stdlib.h>   ///////////////////////////////   
#include <windows.h>  ///////////////////////////////
#pragma pack(1)
using namespace std;
 
    int xx,yy,pr,black;
 
///////////////////работа с BMP//////////////
typedef struct {
    WORD bfType;
    DWORD bfSize;
    WORD bfReserved_1, bfReserved_2;
    DWORD bfOffBits;                
}BitMapFileHeader;
 
typedef struct {
    DWORD biSize;
    LONG biWidth;
    LONG biHeight;
    WORD biPlanes;
    WORD biBitCount; 
    DWORD biCompression;
    DWORD biSizeImage;
    LONG biXPelsPerMeter;
    LONG biYPelsPerMeter;
    DWORD biClrUsed;
    DWORD biClrImportant;
}BitMapInfoHeader;
 
typedef struct{
    char rgbRed;
    char rgbGreen;
    char rgbBlue;
    char rgbReserved;
} RGB_Struct;
 
int main(){
setlocale (LC_ALL,".1251"); //вывод русских букв
 
    FILE *f1;
 
            BitMapFileHeader file_header; 
            BitMapInfoHeader info_header;
            RGB_Struct rgb[256];
            
            f1 = fopen("gr.bmp", "rb");
 
            if (f1 == NULL){
                cout << "Загрузите изображение в ту папку, где находится эта программа, назвав gr.bmp\n";
                cout << "Придется закрыть программу\n";
                cout << "Нажмите любую клавишу для выхода";
                _getch();
            }
            else{
            cout<< "Вы используете изображение gr.bmp\n";
            
            fread(&file_header, sizeof(file_header),1 ,f1);       
            SetFilePointer (f1, file_header.bfOffBits, NULL, FILE_BEGIN);       
            cout<< "Его размер = " << file_header.bfSize<<" байт\n";
            fread(&info_header, sizeof(info_header), 1, f1);
            //cout<< " - Ширина = " <<info_header.biWidth<<" пикселей\n";
            cout<< "Нажмите любую клавишу\n";
            _getch();
            system("cls");
                for (yy = 0; yy<=info_header.biHeight; yy++){
                    for (xx = 0; xx<=info_header.biWidth; xx++){
                        /*вот тут надо мучить картинку*/
                        }
                }
            
 
                        _getch();
                        //Вывод того, что просканировали
                        system("cls");
                        cout<<"Готово!\n";
                        cout<< " - Ширина = " <<xx<<" пикселей\n";
                        cout<< " - Высота = " <<yy<<" пикселей\n";
 
            /////////////закончили работу с картинкой
 
 
 
 
            }//конец работы с графиком
    _getch();
    system("cls"); //очистка экрана
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru