Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Движение по матрице BMP, не удается сделать 
:(
    Опции темы
Artemon
Дата 22.12.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


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

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



Есть BMP файл, задача по координатам (X,Y) получить смещение относительно начала, либо конца файла.

Что-то ни как не могу сообразить.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
maxim1000
Дата 22.12.2006, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



bmp разные бывают
тут надо смотреть, какой формат (24 бита, 8 и т.д.)

Добавлено @ 16:26 
во... нашёл:
http://forum.vingrad.ru/index.php?showtopi...st&p=717911


--------------------
qqq
PM WWW   Вверх
Artemon
Дата 22.12.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


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

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



не сжатый 24bit.

но дело не в этом, вопрос не в формате, а втом как преобразовать заданные координаты в смещение относительно начала или конца.

P.S.
    Этот вопрос должен находиться в алгоритмах, а не в форматах, и я очень буду рад, если вы его туда переместите.



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
maxim1000
Дата 22.12.2006, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



1. находим номер первого пиксела нужной строки
2. находим номер нужного пиксела

(1)
сдвигаемся от конца файла вверх на Y*<количество байт в записи строки>
вверх потому, что у bmp обратный порядок записи строк (сначала нижние)
количество байт строки - 3*<ширина в пикселах>+delta
delta - 0,1,2 или 3, подбирается так, чтобы длина строки в байтах была кратна 4-м
(2)
сдвигаем на 3*X в сторону конца файла (здесь уже порядок более привычный - сначала левые, потом правые)


Цитата(Artemon @  22.12.2006,  16:14 Найти цитируемый пост)
Этот вопрос должен находиться в алгоритмах, а не в форматах, и я очень буду рад, если вы его туда переместите.

не буду спорить с тем, что здесь есть что-то алгоритмическое, но слишком много тонкостей, специфичных конкретно для bmp, к алгоритмам эти детали особо-то и не относятся

если бы вопрос стоял "матрица записана построчно в файл (ну или одномерный массив), найти смещение элементы с указанными индексами", я бы тему не переносил...

так что просто одна часть перевесила другую...

Это сообщение отредактировал(а) maxim1000 - 22.12.2006, 18:00


--------------------
qqq
PM WWW   Вверх
chyapay
Дата 19.1.2007, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.2.2006
Где: UA, Lviv

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



блин 2 пальца об асфальт:
 X В ДИАПАЗОНЕ ОТ 0 ДО XWIDTH-1
 Y В ДИАПАЗОНЕ ОТ 0 ДО YWIDTH-1

Тогда:
IF WIDTH MOD 4 = 0 THEN
OFFSET:=(WIDTH*Y+X)*COLOR_DEPTH DIV 8  //COLOR_DEPTH=4,8,16,24,32
ELSE
OFFSET:=((((WIDTH DIV 4) +1)*4)*Y+X)*COLOR_DEPTH DIV 8;

вот как просто!

Добавлено @ 18:16 
а и еще:
OFFSET:=OFFSET+IMG_BEGIN_OFFSET; // добавить после исчислений.
PM MAIL ICQ YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форматы файлов и данных | Следующая тема »


 




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


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

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