Прочитать BMP файл

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Прочитать BMP файл

Сообщение IVAN008 » 01.02.2006 (Ср) 19:29

Здорово!!
Понимаю что вопрос детский, но всетаки.. :-)
Есть BMP файл надо добратся до матрицы в которой храниьтся информация о изображении, но как это сделать.. ума не приложу
Структуру файла нарыл, а вот что делать дальше.... Тупняк полный
Выручайте

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.02.2006 (Чт) 0:15

Что-что... читай данные после BITMAPFILEHEADER и BITMAPINFOHEADER.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2006 (Чт) 0:31

Сходи на http://www.wotsit.org, скачай описание формата. Там было несколько документиков, в одном (док, кажется) все было подробно расписано.

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 08.02.2006 (Ср) 18:21

Так.....для особо умных прошу читать название конференции в которой находимся.
Прочитали??? хорошо повторим VB для новичков, читай - ДЛЯ ЧАЙНИКОВ!!!!!
так и чего мы теперь умничаем???
Читай то - читай сё..... блн да если бы я знал как читать двоичные файлы ... хрен бы я кого спрашивал.
А если серьезно... дайте примерчик или чего подобное... а то не могу никак
Сеньк заранее :lol:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 08.02.2006 (Ср) 18:25

А если серьезно, "форум для новичков" не означает "сделайте все за меня". Ходи по ссылке и читай. Если будут проблемы с пониманием, тогда и задашь вопросы на этом форуме. Либо пиши в форум "Работа", там все сделают за тебя, но не бесплатно.
Lasciate ogni speranza, voi ch'entrate.

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 10.02.2006 (Пт) 19:02

Порезано модератором, как задевающее некоторых пользователей. --alibek

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 10.02.2006 (Пт) 19:32

По твоему "конкретному" вопросу тебя отправили читать, то что тебе поможет... Если ломы читать, то так сразу и говори: "Хочу готовый код!!!! Ничего понимать не хочу". Ты сходил по ссылке? На этом форуме в поиск заходил? Если нет, то и нечего шуметь...
Весь мир матрица, а мы в нем потоки байтов!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 10.02.2006 (Пт) 22:15

IVAN008, в последнее время прослеживается тенденция озлобления гуру. Гуру этого не замечают, зато хорошо видят соломинку в глазу новичка. Сколько тем закрыто со словами - в поиск? Если все новое - давно забытое старое, то в этом месте каждый новый вопрос имеет миллионы готовых ответов. Не кипятись, а то еще "наград" надают, не обрадуешься.

Если ты не знаком с программированием как таковым, то тебе трудно придется. Для начала в твоей задаче тебе следует выяснить какие типы данных существуют в VB и для чего они нужны. Полагаю проблема в этом.

Если тебе сложно самому разобраться, напиши мне личное сообщение с информацией, которую ты нашел, я помогу тебе советами или примером.
ХЎ

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2006 (Сб) 9:58

2 IVAN008по доброте душевной. только здесь и сегодня. Открываешь MSDN, идешь в раздел Graphics and Multimedia, далее Windows GDI, далее SDK Documentation, далее Windows GDI, далее Bitmaps. И вот уже здесь что называется от сих до сих читаешь... Правда на аглицком, да и код на сях... Но истинный VB-проггер должен уметь и то и это. Вот уж если и тут непонятно, то спрашивай что конкретно непонятно. Вариант 2. Поиск по словам BITMAP, BITMAPFILEHEADER и так далее в Google. Есть шансы найти что-нить по русски, и может быть даже на VB. Да и по нашему форуму можно пошарится, поискать...
Весь мир матрица, а мы в нем потоки байтов!

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 11.02.2006 (Сб) 10:14

Советую тебе просто купить книгу по VB и изучить её. Для начала оператор OPEN, и все его параметры. Затем Get #... и Close.
Нет ничего невозможного для человека с интеллектом.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2006 (Сб) 12:03

Например Дэниела Эппелмана Visual Basic Programmer's Guide to the Win32 API (убейте не помню как русский перевод называется, но он есть). Аглицкую версию можно качнуть здесь http://www.vbrussian.com/Files/Programs/Win32API.exe - это самораспаковывающийся архив. Разжевано до мельчайших подробностей, про BITMAP в том числе
Весь мир матрица, а мы в нем потоки байтов!

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 11.02.2006 (Сб) 12:06

Это не то, ему нужно для начала самые азы узнать, а уж потом на АПИ лезть.
Нет ничего невозможного для человека с интеллектом.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2006 (Сб) 12:16

ну не знай, не знай... мож ему конечно надо и азы изучить... эт само собой, но ему судя по вопросу надо прочитать содержимое BMP-файла. Плохо представляю, как это сделать без API
Весь мир матрица, а мы в нем потоки байтов!

Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск

Сообщение Kostyan » 11.02.2006 (Сб) 12:18

Достаточно знать формат файла, остальное можно сделать с пом. Get. Я лет 5 назад баловался QuickBasic'ом, написал на нем программу для чтения bmp картинок и вывода их на экран, работало медленно, но верно. Всё это было под досом, так что из VB всё реально самому сделать. И без АПИ.
Нет ничего невозможного для человека с интеллектом.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 11.02.2006 (Сб) 12:28

можно... согласен... но не факт, что это будет проще
Весь мир матрица, а мы в нем потоки байтов!

Grey_Brother
Новичок
Новичок
Аватара пользователя
 
Сообщения: 36
Зарегистрирован: 09.02.2006 (Чт) 10:36
Откуда: Санкт-Петербург

Сообщение Grey_Brother » 13.02.2006 (Пн) 0:14

А если просто
Код: Выделить всё
Image1.Picture = LoadPicture("d:\gb.bmp")

:) :) :D
С уважением, GB.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 13.02.2006 (Пн) 2:04

IVAN008 писал(а):надо добратся до матрицы в которой храниьтся информация о изображении
Grey_Brother писал(а):А если просто
Код: Выделить всё
Image1.Picture = LoadPicture("d:\gb.bmp")
Ага, и потом считываем полученные цвета пикселов через GetPixel в двумерный массив :)

P.S.: разберись с форматом bmp-файлов, там же несложно. Ты же "нарыл структуру" :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 13.02.2006 (Пн) 2:11

Описание формата bmp - файла
FILE HEADER

BM signature (2 bytes) =BM
File size (4 bytes)
Reserved (2 bytes)
Reserved (2 bytes)
Location of bitmap data (4 bytes)

INFORMATION HEADER

Size of information header (4 bytes) =40
Image width (4 bytes)
Image height (4 bytes)
Number of color planes (2 bytes) =1
Number of bits per pixel (2 bytes)
Compression method used (4 bytes)
Number of bytes of bitmap data (4 bytes)
Horizontal screen resolution (4 bytes)
Vertical screen resolution (4 bytes)
Number of colors used in the image (4 bytes) =0
Number of important colors (4 bytes)

COLOR TABLE

The color table holds 256 entries of 4 bytes each.

BITMAP DATA

The ordering of the bytes reflects the left-to-right order of pixels, starting with the bottom line in the image.

Помню в свое время у меня вызвало затруднение только Compression method used (4 bytes). Остальное просто элементарно. Но то было давно :)
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.02.2006 (Пн) 12:10

Формат то он нарыл (если сходил по ссылкам, предоставленным ему в немерянном количестве)... Но он же читать то не хочет... Ему ж надо все разжевать... или дать готовый код
Последний раз редактировалось Viper 13.02.2006 (Пн) 18:27, всего редактировалось 1 раз.
Весь мир матрица, а мы в нем потоки байтов!

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 15:33

За такое "спасибо" выписываю тебе строгое предупреждение. --alibek

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 18:17

Послушай Алибек. Я понимаю, что ты тут Модератор и твоё слово последнее, но почему мне предупреждение, а товарищу Вайперу за обращение ко мне "оно" - никакого предупреждения???? Или что у вас тут правила оскорблять только новичков и тех кто задает вопросы???
И кстати насчет спасибо - ответа на вопрос, замечу - простой вопрос я так и не получил. Я его уже давно сам нашел, но мне сам принцип важен, задал вопрос, вместо ответа получил кучу оскорблений, да еще в конце концов и предупреждение
Я спрашиваю ГДЕ СПРАВЕДЛИВОСТЬ?????

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 18:24

Да и еще....
Ты удалил мое сообщение, так ты меня просвети, что там я неправильно написал, что там не вежливо??
А если ответил немного резко на хамство, так почему ты наказал меня а не того кто позволяет себе хамить???
Или по твоему ответ - Иди купи книгу и не приставай к больши дядям с вопросами - не хамство???
ну про вайпера то я уже просто молчу....
или твой собственный ответ - спроси мы сделаем тебе это за деньги???? это ты как расцениваешь? не хамство???? это по твоему вежливо?Я идиот! Убейте меня, кто-нибудь!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.02.2006 (Пн) 18:25

IVAN008 писал(а):но почему мне предупреждение, а товарищу Вайперу за обращение ко мне "оно" - никакого предупреждения????

Не знаю, но думаю, что потому, что "оно" есть опечатка, что видно из конструкции "оно нарыл". Если бы тебя назвали "оно", было бы "оно нарыло".

IVAN008 писал(а):задал вопрос, вместо ответа получил кучу оскорблений, да еще в конце концов и предупреждение

Дело в том, что весь тон дальнейшей дискуссии был задан твоим http://bbs.vbstreets.ru/viewtopic.php?p=6584429#6584429. Мы действительно здесь не восхищаемся людьми, которые в подобной форме отвергают предложение почитать мануал.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.02.2006 (Пн) 18:27

Да, и в принципе за http://bbs.vbstreets.ru/viewtopic.php?p=6584915#6584915 здесь обычно следует бан.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 18:33

GSerg
Да и не надо восхищатся!!!
Ты прочитай повнимательнее мой вопрос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
блин да сколько раз уже это можно повторять!!!
или у вас приветствуются челы которые не читают вопросов??? а только мануалы?????
Я пишу - нарыл структуру файла!!!!!!
перевожу - я знаю где в каком байте записана какая информация, но не могу получить ее в программу!!!!! так понятно или еще нет?Я идиот! Убейте меня, кто-нибудь!???
вместо ответа мне предлагают прочитать про структуру файла?????
Порезано модератором, как задевающее некоторых пользователей. --alibek
Можешь выписывать мне еще одно предупреждение
нафига мне участвовать в форуме на котором невозможно получить ответы на свой вопрос?????

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 13.02.2006 (Пн) 18:38

2 IVAN008
"оно" именно что опечятка. за опечятку извиняюсь...

Насчет всего остального. Ответ был Вам дан уже во втором посте. На что последовал Ваш ответ о нежелании читать мануал... И что Вы после этого хотите?

Далее в нескольких постах Вам было отвечено в предельно корректной форме учитывая тон Ваших ответов где и как найти ответы на Ваш вопрос... Даже формат файла выложили. Что еще то Вам надо?

И за все это "спасибо" за которые два плюса выписывают? Очень интересно, что же там было. Я то узреть не успел...

Я все сказал!
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.02.2006 (Пн) 18:45

IVAN008 писал(а):Да и не надо восхищатся!!!

Да и не буду! С этим всё ок.

IVAN008 писал(а):Ты прочитай повнимательнее мой вопрос!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Вопрос допускает чуть более широкое толкование, чем тебе кажется.

IVAN008 писал(а):или у вас приветствуются челы которые не читают вопросов??? а только мануалы?????

У нас не приветствуются челы, которые не читают вопросы. Особенно такие челы не приветствуются мной.
Однако, заметь, что дискуссия ушла совсем в другое русло именно после того, как ты выразил недовольство неверным прочтением вопроса в такой форме, что про вопрос как-то все забыли окончательно.

IVAN008 писал(а):перевожу - я знаю где в каком байте записана какая информация, но не могу получить ее в программу!!!!! так понятно или еще нет?Я идиот! Убейте меня, кто-нибудь!???

Ещё нет. Не могу получить почему? Не знаю про user-definded types? Не умею открыть в бинарном режиме? Не умею прочитать из бинарного режима? Что?

IVAN008 писал(а):вместо ответа мне предлагают прочитать про структуру файла?????

Проигнорировать сие преложение следовало бы в иной форме.

IVAN008 писал(а):БЛЯ ДА ВЫ НОРМАЛЬНЫЕ ЗДЕСЬ?Я идиот! Убейте меня, кто-нибудь!? :twisted:

В основном да. Я иногда нет.

IVAN008 писал(а):нафига мне участвовать в форуме на котором невозможно получить ответы на свой вопрос?????

Количество сообщения в данном форуме указывает на то, что подавляющая часть страждущих получает ответы.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 19:57

Порезано модератором, как задевающее некоторых пользователей. --alibek

Ну и напоследок – Господа модераторы – я считаю что ту часть завуалированного мата который я позволил себе применить в ответе данному субъекту, вполне оправдана его последним сообщением, его тоном и содержанием, я его даже комментировать не буду.

Товарищу vvs_adm Спасибо за содержательный ответ, но позволю себе повторить еще раз!!!! ЕСТЬ У МЕНЯ СТРУКТУРА ФАЙЛА!!! ЕСТЬ!!!!! Ты мне метод укажи которым это все читается!!!!!! И на будущее, я даже знаю, что цвета там стоят не RGB, а BGR кажется…короче обратно… не надо мне этим засорять…. НЕ НАДО!!!!! Внимательно читайте вопрос!!!!!!!

Порезано модератором, как задевающее некоторых пользователей. --alibek

Grey_Brother – без коментариев.

С уважением IVAN008

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 20:26

Уважаемый
GSerg

Вы ссылаетесь на тон моего поста
IVAN008 писал(а):Так.....для особо умных прошу читать название конференции в которой находимся.
Прочитали??? хорошо повторим VB для новичков, читай - ДЛЯ ЧАЙНИКОВ!!!!!
так и чего мы теперь умничаем???
Читай то - читай сё..... блн да если бы я знал как читать двоичные файлы ... хрен бы я кого спрашивал.
А если серьезно... дайте примерчик или чего подобное... а то не могу никак
Сеньк заранее :lol:


А что в нем такого уж нехорошего ??? Я же прямо спрашиваю про методы чтения двоичных файлов.
Объясните, зачем меня после этого посылать по ссылке где описана структура файла, либо предлагать написать код за деньги???
Потом я еще раз спрашиваю - напрямую заметте, что мне необходимо знание методов чтения двоичных файлов.
Поясню - это означает, что мне надо открыть файл для двоичного доступа (Binary), а не текстового, как описано в той книжке которая у меня есть.
Вместо этого я получаю поток оскорблений и всяческих самолюбований.
Как всякий нормальный человек, я пытаюсь ответить обидчикам, но почему-то получаю предупреждение???
Ну и пожалуй, напоследок, я все-таки постараюсь еще раз напомнить:
Я спрашиваю в форуме для новичков, т.е. там, где по идее, должны спрашивать совета те, кто не слишком близко знаком с програмированием, либо глубокое изучение ему просто не нужно. Так вот я отношусь именно ко второй аудитории, я занимаюсь совершенно другим делом и програмирование для меня просто хобби иногда помогающее мне в основной работе. Поверте у меня и так хватает чего почитать.
Проблема по которой я обратился имеет свою определенную историю, мне необходимо обрабатывать изображения и чего-то там считать, мой программист, только и делает что моет мне уши про API .NET C# ну и так далее по списку, а дело при этом стоит.
Я решил сам взятся и написать, определенные успехи уже есть, но не все можно найти в книгах. Спрашиваю на форуме - и что получаю поток умничания про API C#, вместо того что бы ответить на простой вопрос????
Ребята???? вы чем тут занимаетесь?????
только после того, как я поднял хай, уважаемый GSerg сподобился спросит наводящий вопрос - . "Не могу получить почему? Не знаю про user-definded types? Не умею открыть в бинарном режиме? Не умею прочитать из бинарного режима? Что? "
Все предыдущие товарищи во главе с многоуважаемым Алибеком просто футболили новичка!!!!
Это нормально?Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!???
Это вот так вы тут помогаете Я идиот! Убейте меня, кто-нибудь!??

IVAN008
Обычный пользователь
Обычный пользователь
 
Сообщения: 63
Зарегистрирован: 15.02.2005 (Вт) 12:19

Сообщение IVAN008 » 13.02.2006 (Пн) 20:30

GSerg
насчет подавляющего большинства сраждущих - а может быть вы ошибаетесь???? просто людям надоедает когда их футболят и прекращают задавать вопросы????
Я например по опыту предыдущих вопросов знаю, как трудно добиться ответа на поставленный вопрос, все время получаешь ссылки на API и MSDN. Самое интересное, что я потом нашел меотды гораздо проще, лучше и быстрее, чем мне подсказали на данном форуме.
А в этот раз когда опять все начилось сначала, просто сорвался.

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 55

    TopList