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

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

Войти
Регистрация
Восстановить пароль
 
JJJJ
0 / 0 / 1
Регистрация: 17.12.2013
Сообщений: 11
#1

bmp 8 - C++

17.12.2013, 23:48. Просмотров 482. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста, нужно реализовать алгоритм Линде-Бузо-Грея для BMP файла. Проблема появляется при записи файла в формат bmp 8 - windows не может вывести мою картинку, в то время как открывая ее в фотошопе все вполне понятно.
Вот собственно функция(y - палитра, x - значения растра):
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
int write_bmp8(char *name,int H,int W,char**y,char**x){
    ofstream ofsb(name, ios::binary);
    bfh->bfOffBits=54 + 1024;   
    cout<<bfh->bfOffBits<<endl;
    bfh->bfSize = bfh->bfOffBits + sizeof(char)*W*H+H*((sizeof(char)*W) % 4);
    cout<<bfh->bfSize<<endl;
     bih->biSize = sizeof(bih);
     bih->biBitCount = 8;
     bih->biClrUsed = 0;                         
     bih->biCompression = 0;
     bih->biHeight = H;
     bih->biWidth = W;
     bih->biPlanes = 1;
    ofsb.write(bf,sizeof(BITMAPFILEHEADER));
    ofsb.write(bi,sizeof(BITMAPINFOHEADER));
    for(int i=0;i<256;i++){
        for(int j=0;j<3;j++)
            ofsb.write((char*)&y[i][j],1);
        ofsb.write((char*)&y[i][4],1);
    }
 
    for (int i = 0; i < bih->biHeight; ++i){
        for (int j = 0; j < bih->biWidth ; j++){
            ofsb.write((char*)&x[i][j],1);
        }
        ofsb.write((char*)&x[i][4],(3*W)%4);
    }
    return 0;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 23:48     bmp 8
Посмотрите здесь:

bmp в C++ - C++
Помогите пожалуйста написать программу на C++ которая уменьшает разрешение bmp картинки в 2 раза. Можно использовать только библиотеку ...

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

[C++] 24-битные BMP - C++
Программа не хочет кодировать 24-битные BMP. Под кодированием я понимаю разбитие изображение на квадраты по 10 пикселей (в программе - по...

bmp (24 битный) - C++
Ребят всем привет я бы выложил тут код,ну на самом деле с моей точки зрения это не к чему.Встала задача открыть 24 битный bmp файл и...

BMP - файл - C++
Доброго времени суток ! Друзья, где можно почитать про BMP файлы, посмотреть примеры (код) ? Интересует: как изменить яркость. ...

Стеганография в BMP - C++
Проект выполняющий метод lsb. В коде ошибки. Не могу понять как исправить. Прошу помочь, может кто разбирается в таких вещах. ...

Чтение BMP 24 - C++
Здравствуйте! Задача: Нужно зашифровать текстовый файл в картинку формата BMP24. Проблема: Перечитал около десятка страниц форумов но...

Wav в bmp - C++
Подскажите, пожалуйста, как разложить побитово wav-file и сложить его в bmp? Можно примеры кода?

Открытие .bmp - C++
Как открыть .bmp в VS 2012?

Выравнивающие биты в BMP - C++
Здравствуйте. Прошу помощи, не могу найти ошибку в коде. Задача обработать взвешенным ранговым фильтром бмп файл и результат...

Скриншот, работа с bmp - C++
Возникла необходимость создания скриншота неактивого окна. В результате долгих поисков, по гуглу я наткнулся на следующий рабочий код: ...

Проблема с масштабированием BMP - C++
Проблема в следующем: вывожу в клиентское окно BMP-картинку (Truecolor, 24 bit, размер - 1024х960), которую читаю с диска. При этом...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vitecd
18 / 1 / 0
Регистрация: 26.09.2013
Сообщений: 59
18.12.2013, 03:17     bmp 8 #2
1. в цикле удобнее будет читаться обращение к переменным H, W и памяти меньше займет.
2. палитра точно правильная?
3. приложите файлик, который получается, точно смогу сказать, где собака.

PS рекомендую biClrUsed указать 256 и biClrImportant аналогично. Почему? спецификацию почитайте.
PPS проверьте значение bfh->bfSize
Ответ Создать тему
Опции темы

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