Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ogcjm124
2 / 2 / 0
Регистрация: 31.07.2011
Сообщений: 143
#1

Не получается перекрасить BMP-ку.What's the matter? - C++

30.10.2011, 21:15. Просмотров 386. Ответов 0
Метки нет (Все метки)

Всем привет.
1)Надо перекрасить BMP-ку в указанный user цвет.Конечно цвет меняется,но это происходит как-то странно.Можете глянуть код(см.ниже)?
2)После того,как я записываю все данные,в том числе и новый цвет вроде должен быть конец файла,но проверка говорит об обратном,почему так?
3)Ребят правильно ли я понимаю структуру Bmp-ки:
BITMAPFILEHEADER
BITMAPINFOHEADER
RGBQUAD
ГРАФИЧЕСКИЕ ДАННЫЕ
Итак,как я понимаю цвет каждого пикселся описывается структурой RGBQUAD,но тогда что содержит раздел ГРАФИЧЕСКИЕ ДАННЫЕ.
4)Когда я открываю файл на чтение,например он красного цвета.Я считываю данные в структуры BITMAPFILEHEADER,BITMAPINFOHEADER последовательно.После чего вычисляю сколько байт от BITMAPINFOHEADER до ГРАФИЧЕСКИХ ДАННЫХ и выясняю что 0;Таки образом данные о цветах у меня прочитать не получается как быть?
5)Верно ли утверждение что RGBQUAD содержится в разделе графические данные?


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
#include <iostream>
#include <Windows.h>
#include <conio.h>
#define BMFH BITMAPFILEHEADER
#define BMIH BITMAPINFOHEADER
using namespace std;
 
int main ()
{
    int i;
    BMFH bfh;
    BMIH bih;
    RGBQUAD palette;
    FILE *ptr;
    
    ptr=fopen("bmp.bmp","rb+");
    if (!ptr) exit(1);
    
    fread (&bfh,1,sizeof(BMFH),ptr);
    fread (&bih,1,sizeof(BMIH),ptr);
 
    RGBQUAD *buf=new RGBQUAD[bih.biWidth*bih.biHeight*sizeof(RGBQUAD)];
    
    cout << "Enter color\n";
    cin >> palette.rgbBlue >> palette.rgbGreen >> palette.rgbRed;
    palette.rgbReserved=0;
    
    for(i=0;i<bih.biHeight*bih.biWidth;i++)
        buf[i]=palette;
    
    fwrite(buf,1,bih.biWidth*bih.biHeight*sizeof(RGBQUAD),ptr);
 
    cout << feof(ptr);
    fclose(ptr);
    getch();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.10.2011, 21:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не получается перекрасить BMP-ку.What's the matter? (C++):

Работа с bmp файлом не получается найти ошибку - C++
Добрый день, знаю что существуют разные способы считывания bmp файла, мне нужно считать таким образом что бы заголовок лежал в одном...

Работа с BMP-файлами (класс "8 битное BMP изображение) - C++
Написать класс &quot;8 битное BMP изображение&quot;.Класс должен содержать 3 конструктора: конструктор по умолчанию, конструктор с параметрами и...

Не получается перекрасить картинку.Помогите найти ошибку. - Visual C++
Ребят надо перекрасить картинку в цвет который указывает user.Картинка конечно перекрашивается,но каки-то странным образов в лучше случае.А...

Взлом Whats app - Программирование iOS
Здравствуйте! Мне нужен совет. Может кто-нибудь пытался взломать переписку какого-нибудь пользователя whats app ? Может...

Не получается считать .bmp файл - Visual C++
#include &lt;fstream&gt; #include &lt;cstdlib&gt; using namespace std; int openBitMapFile(char *file_name) { ifstream in_file; int...

Не получается вставить *.bmp в документ Word - Lazarus
for i:= 1 to 2 do begin MSWORD.Selection.GotoNext(Wath:= wdGotoPage); end; pic:=...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 21:15
Привет! Вот еще темы с ответами:

One matter about windows 8 single language - Windows 8, 8.1
Когда купили ноутбук, была предустановлена эта самая windows. Будучи на тот момент ярым ненавистником &quot;восьмерки&quot;, моментально снес ее и...

Does is matter where i put my code in the implementation section? - Delphi
Take a look at this little snip: implementation {$R *.dfm} Do I put my code above {$R *.dfm} or below it? Does it matter? I...

Создание монохромного bmp из одной из 24-х плоскостей 24-битного bmp - C#
Здравствуйте. Стоит задача разбить 24-х битное bmp изображение на 24 плоскости с последующей возможностью генерации 24 монохромных...

перекрасить StringGrid - C++ Builder
Можно ли перекрасить StringGrid в другой цвет отличный от белого - не сами строки и ячейки, а именно фон когда яцеек нет


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru