2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
1

Вывод в консоль SetPixel(R,G,B) с 256-цветового *.bmp

19.01.2014, 01:40. Показов 3094. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер,
пытаюсь прочитать *.bmp файл заведомо известного размера и вывести его в консоль через SetPixel
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
#include <iostream>
#include <fstream>
#include <windows.h>
 
 
using namespace std;
 
void main()
{
    char* in = "try1.bmp";
    char* out = "out.txt";
    ifstream ifs(in);
    ofstream ofs(out);
    char ch;
    while(ifs.get(ch))
    {
       
        ofs << "0x" << hex << static_cast<int>(ch) << " ";
        // char temp_RBG[] = ;
        // a=b=c=0;
       
    }
    /////// Допишу как будут данные такого типа 0xFF16A7 в переменной temp_RBG
    //  HWND hwnd = GetConsoleWindow();
    //  SetPixel(GetDC(hwnd), i+100, j+100, RGB(a, b, c)); 
}
Для теста взял try1.bmp 5x5, где:
- 1-ая строка 5 пикселей RGB 0xFF0000
- 2-ая строка 5 пикселей RGB 0x01FF01
- 3-ая строка 5 пикселей RGB 0x0000FF
- 4-ая строка 5 пикселей RGB 0x1c404c
- 5-ая строка 5 пикселей RGB 0x1cff4d

Вот, что вышло http://img811.imageshack.us/img811/4344/34v3.jpg где красным обвёл как я понимаю 54 технических байта и далее не могу найти свои цвета.

Сам try1.bmp http://img600.imageshack.us/img600/4666/cg74.png

Хочу написать функцию отрисовки картинки .bmp с файла draw("try1.bmp", coord_x, coord_y). Зарание спасибо за помощь!

P.S. Описание формата BMP на википедии с примерами на разных форумах рассмотрел. Не смог применить на своём примере.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2014, 01:40
Ответы с готовыми решениями:

SetPixel и BMP
Друзья, нужна помощь. Скажите, пожалуйста, по какой причине сетпиХель не рисует что-либо вообще? ...

Методы GetPixel\SetPixel BMP и стеганография
Подскажите, мне необходимо реализовать метод стеганографии &quot;&quot;замена палитры&quot;, следовательно нужно...

Вывод графических примитивов в консольное окно посредством загрузки в консоль bmp изображения
Добрый день! Хочу &quot;написать&quot; код для вывода графических примитивов в консольное окно посредством...

BMP 256 в массив и обратно
Суть программы в том, чтобы загрузить BMP в массив byte, добить массив до квадратного Генератором...

1
Неэпический
17848 / 10616 / 2049
Регистрация: 27.09.2012
Сообщений: 26,684
Записей в блоге: 1
19.01.2014, 09:11 2
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
далее не могу найти свои цвета.
как не можете?
Вон же 0x4d 0xff 0x1c - таких 5 участков
далее идут 0x4c 0x40 0x1c - таки тоже 5 штук
потом идут 0xff 0x0 0x0 - таких тоже 5
далее 0x01 0xff 0x01 - тоже 5 штук
и потом еще 0x0 0x0 0xff - тоже 5 штук
Почему именно так они расположены? Если действительно
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Описание формата BMP на википедии с примерами на разных форумах рассмотрел.
то должны знать, что изображение в файл записывается с последней строки и получается по сути перевернутым, а так же при количестве бит на пиксель равным 24 (смотрите, у Вас в заголовке есть байт 0x18) каждый цвет записывается тремя байтами в формате BGR, а не RGB
Так же после каждой строки имеется один лишний байт 0x0 - выравнивание равное одному байту (чтобы получилось 16 байт в строке)

Добавлено через 3 минуты
Вот даже цитата с википедии:
Последовательность пикселей, записанных в том или ином виде. Пиксели хранятся построчно, снизу вверх. Каждая строка изображения дополняется нулями до длины, кратной четырём байтам.

В bmp-файлах с глубиной цвета 24 бита, байты цвета каждого пикселя хранятся в обратном порядке BGR (Blue, Green, Red)
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2014, 09:11
Помогаю со студенческими работами здесь

Буферизация вывода в консоль, и цветной вывод в консоль
Потребовалось реализовать цветной вывод массивов в консоль(некоторые значения выделить зеленым)....

Нужно работать с bmp файлом в консоли. Как задать путь к файлу через консоль?
Мне нужно работать с *.bmp файлом в консоли. как задать путь к файлу через консоль чтобы потом...

Дилема: Celeron 1200/256/100 vs Pentium 933/256/133
У меня вот такой вопрос к знающим, разбирающимся в железе людям: Eсть два стареньких процессора:...

Вывод текст в консоль (не получается вывести текст в консоль; попытка была в разделе menu, но вывелся ужас)
d_d1 segment ;начало сегмента данных m1 db 23, '=========MENU=========', 23, '$' m2 db 23, '| 1-...

Нормально ли, если три слота под ОЗУ забиты так: 256,256,512 ?
у меня 3 слота и все забиты - 256,256,512... выгодно ли так??ибо мне говорили что из-за того что...

Вставить картинку размером 256*256 в ToolBar
Как вставить картинку размером 256*256 на кнопку находящуюся в компоненте ToolBar. Расширение файла...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru