Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.51/37: Рейтинг темы: голосов - 37, средняя оценка - 4.51
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
1

Как прочитать заголовок бинарного файла в формате TIFF?

25.10.2009, 19:45. Показов 7478. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
нужно считать заголовок *.tif - файла...
открываю как поток для чтения бинарного файла вот так:

C++
1
ifstream MyFile("d:\\temp\\Bottles.tif",ios::out | ios::binary);
А дальше что??
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2009, 19:45
Ответы с готовыми решениями:

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

Как прочитать из бинарного файла тип НЕ *char
Понимаю, что ответ где-то на поверхности, но я уже задолбался искать. Гугл и все справочники, в...

Не могу прочитать с бинарного файла компонент
Здравствуйте! Помогите, пожалуйста, совсем начинающему энтузиасту. Программа динамически создает...

Прочитать из бинарного файла в 5 по 8 байты включительно
что то непойму: Подскажите пожалуйста, как прочитать из бинарного файла байт (с 5 по 8 границы...

15
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
25.10.2009, 19:51 2
corri,
А дальше что??
а дальше нужно пока отложить в сторону компилятор и идти за спецификацией формата TIFF.
после изучения формата можно воспользоваться функций ifstream::read()
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 19:53 3
Цитата Сообщение от corri Посмотреть сообщение
открываю как поток для чтения
Странно. Судя по этому:
Цитата Сообщение от corri Посмотреть сообщение
ios::out
вы открываете его для записи.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
25.10.2009, 19:54 4
"ios::out" - это на запись
1
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 19:55  [ТС] 5
ой))
ну там должно быть ios::in
=)))
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 19:57 6
corri, Если проверял на реальном файле, то ты его загубил. Проверь объем.
0
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 19:58  [ТС] 7
Ну это же картинка))
Её не жалко))
Тем более копия))
0
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 22:48  [ТС] 8
Кароч воть...
В tif-файлах заголовок - первые восемь байт...
При прочтении выдаётся 2 или 3 буквы в зависимости от варианта сжатия картинки,но это не принципиально,так как заголовок у всех файлов,естесственно,одинаковый..
В заголовке куча тэгов (около 30-40...) хранящих информацию..
Задача - достать информацию из них..
формат одного тэга примерно такой:
Код Hex Имя Описание
254 0x00FE NewSubfileType Тип данных, хранящихся в этом файле.

Если кто-то сможет хоть чем-то помочь - буду бесконечно благодарен.!!!!!
1
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 22:53 9
Для начала, ознакомься с этим: http://partners.adobe.com/publ... /TIFF6.pdf
И, наверняка поймешь, что проще скачать и использовать это: http://dl.maptools.org/dl/libtiff/
или это: http://gnuwin32.sourceforge.net/packages/tiff.htm
2
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
25.10.2009, 23:02 10
Хз, как это в си++, на Си я бы написал так:

C
1
2
3
4
5
6
7
8
9
10
11
typedef struct
{
  // Тут описываешь поля заголовка
} TiffHdr;
 
...
TiffHdr hdr;
FILE *fp;
 
fp = fopen ("...", "rb");
fread (&hdr, sizeof (hdr), 1, fp);
2
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 23:04 11
По моему, это не то чем стоит заниматься для изучения языка программирования.
0
Evg
Эксперт CАвтор FAQ
21279 / 8301 / 637
Регистрация: 30.03.2009
Сообщений: 22,659
Записей в блоге: 30
25.10.2009, 23:05 12
Цитата Сообщение от niXman Посмотреть сообщение
По моему, это не то чем стоит заниматься для изучения языка программирования.
Как знать... обучаться наиболее эффективно получается на "живых" примерах, в идеале - то, что тебе конкретно понадобилось. Понятное дело, что задача должна быть подъёмной, и начинать с реализации ядра ОС является слишком оптимистичным
0
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 23:06  [ТС] 13
это текущее задание в семестре на втором курсе...
niXman и EVG - Спасибо!!
большое...
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 23:07 14
Цитата Сообщение от Evg Посмотреть сообщение
Понятное дело, что задача должна быть подъёмной
Собственно я об этом.

Цитата Сообщение от corri Посмотреть сообщение
niXman и EVG - Спасибо!!
За что?
0
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 23:15  [ТС] 15
Цитата Сообщение от niXman Посмотреть сообщение
За что?
Тебе за ссылку ,EVG - за код...
0
Эксперт С++
3211 / 1459 / 74
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 23:22 16
На "спасибо" жми. И обращайся, если что.
0
25.10.2009, 23:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2009, 23:22
Помогаю со студенческими работами здесь

Нужно сохранить и прочитать динамический массив структур из бинарного файла
struct city{ char name_city; char metro; int year_city; int naselenie; };

Прочитать из бинарного файла байт номер 0 и отобразить его на дисплее в виде числа
прочитать из бинарного файла байт номер 0 и отобразить его на дисплее в моем коде программа...

Как прочитать первые 18 байт из бинарного файла
как прочитать первые 18 байт?

Получить текстовый заголовок из бинарного файла
Привет форумчанам! Есть необходимость зачитать текстовый заголовок графического файла (DICOM), не...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru