Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формат Bmp, Monocrome format 
V
    Опции темы
Ak47black
  Дата 27.10.2006, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Изучаю Bmp формат.
Сам принцип хранения двухцветного (Monocrome) ресунка мне понятен.
Проблемма заключается в следушем - как считывать по bitам, так как там пиксель 0 - черный 1 - белый.
PM MAIL   Вверх
Albinos_x
Дата 27.10.2006, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



статью по ссылке в прошлой теме читал?

Это сообщение отредактировал(а) Albinos_x - 27.10.2006, 20:49


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Ak47black
Дата 27.10.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Читал. Сам принцип понимаю что, где, как находиться.
Если изображение 24 битовое то считываю и выважу на ура.
Но если он двухцветного (Monocrome), то как мне считать.
Тоесть там один бит содержит цвет (черный или белый) ,а как мне это на дельфи проделать?
Byte считать нету проблем , а как , bit у меня возникла проблемма  smile 
PM MAIL   Вверх
Albinos_x
Дата 27.10.2006, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Цитата

1 - монохромное изображение (поддерживается всеми версиями). Каждый пиксель представлен одним битом данных, т.е. один байт содержит информацию о цвете 8 последовательно идущих пикселей. Цвет первого пикселя определяется состоянием старшего бита первого байта (и так далее), если его значение равно единице, то цвет пикселя будет определяться первой записью таблицы цветов (считается от нуля). Вообще значение цвета определяется по RGB (для BI_RGB версии) составляющим, таблицы цветов, по индексу. 


в принципе никаких проблем не вижу...

читаешь байт, делишь на биты...
 к примеру так:
Код

bit:=byte_  mod 2;




--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Ak47black
Дата 28.10.2006, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Цитата(Albinos_x @ 27.10.2006,  21:25)
Читаешь байт, делишь на биты...
 к примеру так:
Код

bit:=byte_  mod 2;


Вы имеете в виду из Hex перевести в Bin ?
PM MAIL   Вверх
KDenisK
Дата 28.10.2006, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 30.12.2005

Репутация: нет
Всего: нет



Цитата(Ak47black @ 28.10.2006,  00:01)
Вы имеете в виду из Hex перевести в Bin ?

Ага. Но такую фишку оптимально на асме проделать.
PM MAIL   Вверх
Ak47black
Дата 28.10.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Цитата(KDenisK @ 28.10.2006,  00:09)
Цитата(Ak47black @ 28.10.2006,  00:01)
Вы имеете в виду из Hex перевести в Bin ?

Ага. Но такую фишку оптимально на асме проделать.

Можете какие-нибудь наброски дать ?  smile 
PM MAIL   Вверх
Albinos_x
Дата 28.10.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 1
Всего: 108



Цитата(Ak47black @  28.10.2006,  00:01 Найти цитируемый пост)
Вы имеете в виду из Hex перевести в Bin ?

в компе число и так Bin, но прочитао-то ты 8 Bin в одну переменную, нам надо знать состояние каждого Bin... следовательно первый справа будет
Код

bit:=byte_  mod 2;

следующий:
Код

byte_:=byte_ shr 1;  // или byte_ div 2
bit:=byte_  mod 2;


можно конечно к этому вопросу и так подойти:
первый слева(8 разряд):
Код

bit:=ord((byte_  and 128) = 128);

7 разряд
Код

bit:=ord((byte_  and 64) = 64);

6 разряд
Код

bit:=ord((byte_  and 32) = 32);

5 разряд
Код

bit:=ord((byte_  and 16) = 16);

и т.д.
4
Код

bit:=ord((byte_  and 8) = 8);

3
Код

bit:=ord((byte_  and 4) = 4);

2
Код

bit:=ord((byte_  and 2) = 2);

1
Код

bit:=(byte_  and 1);



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Ak47black
Дата 28.10.2006, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Albinos_x Спасибо большое, это то что я хотел узнать.

Это сообщение отредактировал(а) Ak47black - 28.10.2006, 11:42
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.