Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.64
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
#1

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

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

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

C++
1
ifstream MyFile("d:\\temp\\Bottles.tif",ios::out | ios::binary);
А дальше что??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2009, 19:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как прочитать заголовок бинарного файла в формате TIFF? (C++):

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

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

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

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

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

Чтение файла TIFF в память - C++
Здравствуйте. Решил проверить простую консольную программу для чтения цветного графического файла TIFF. Код взят из руководства к...

15
Rififi
2360 / 1053 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
25.10.2009, 19:51 #2
corri,
А дальше что??
а дальше нужно пока отложить в сторону компилятор и идти за спецификацией формата TIFF.
после изучения формата можно воспользоваться функций ifstream::read()
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 19:53 #3
Цитата Сообщение от corri Посмотреть сообщение
открываю как поток для чтения
Странно. Судя по этому:
Цитата Сообщение от corri Посмотреть сообщение
ios::out
вы открываете его для записи.
0
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,643
Записей в блоге: 28
25.10.2009, 19:54 #4
"ios::out" - это на запись
1
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 19:55  [ТС] #5
ой))
ну там должно быть ios::in
=)))
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 19:57 #6
corri, Если проверял на реальном файле, то ты его загубил. Проверь объем.
0
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 19:58  [ТС] #7
Ну это же картинка))
Её не жалко))
Тем более копия))
0
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 22:48  [ТС] #8
Кароч воть...
В tif-файлах заголовок - первые восемь байт...
При прочтении выдаётся 2 или 3 буквы в зависимости от варианта сжатия картинки,но это не принципиально,так как заголовок у всех файлов,естесственно,одинаковый..
В заголовке куча тэгов (около 30-40...) хранящих информацию..
Задача - достать информацию из них..
формат одного тэга примерно такой:
Код Hex Имя Описание
254 0x00FE NewSubfileType Тип данных, хранящихся в этом файле.

Если кто-то сможет хоть чем-то помочь - буду бесконечно благодарен.!!!!!
1
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 22:53 #9
Для начала, ознакомься с этим: http://partners.adobe.com/public/developer/en/tiff/TIFF6.pdf
И, наверняка поймешь, что проще скачать и использовать это: http://dl.maptools.org/dl/libtiff/
или это: http://gnuwin32.sourceforge.net/packages/tiff.htm
2
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,643
Записей в блоге: 28
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);
1
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 23:04 #11
По моему, это не то чем стоит заниматься для изучения языка программирования.
0
Evg
Эксперт CАвтор FAQ
18248 / 6373 / 438
Регистрация: 30.03.2009
Сообщений: 17,643
Записей в блоге: 28
25.10.2009, 23:05 #12
Цитата Сообщение от niXman Посмотреть сообщение
По моему, это не то чем стоит заниматься для изучения языка программирования.
Как знать... обучаться наиболее эффективно получается на "живых" примерах, в идеале - то, что тебе конкретно понадобилось. Понятное дело, что задача должна быть подъёмной, и начинать с реализации ядра ОС является слишком оптимистичным
0
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 23:06  [ТС] #13
это текущее задание в семестре на втором курсе...
niXman и EVG - Спасибо!!
большое...
0
niXman
Эксперт С++
3139 / 1451 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
25.10.2009, 23:07 #14
Цитата Сообщение от Evg Посмотреть сообщение
Понятное дело, что задача должна быть подъёмной
Собственно я об этом.

Цитата Сообщение от corri Посмотреть сообщение
niXman и EVG - Спасибо!!
За что?
0
corri
1 / 1 / 0
Регистрация: 07.09.2009
Сообщений: 32
25.10.2009, 23:15  [ТС] #15
Цитата Сообщение от niXman Посмотреть сообщение
За что?
Тебе за ссылку ,EVG - за код...
0
25.10.2009, 23:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2009, 23:15
Привет! Вот еще темы с ответами:

Создание бинарного дерево из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*& Tree) { ...

Создание бинарного дерева из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*& Tree) { Bin q;

Прочитать файл в обратном порядке т.е. встать в конец файла и прочитать до начальной позиции - C++
подскажите пожалуйста как можно прочитать файл в обратном порядке т.е. стать в конец файла и прочитать до начальной позиции?

Как считать из бинарного файла - C++
Здравствуйте, я написала процедуру считывания из бинарного файла, но в результате выводится непонятный набор букв. Как сделать что бы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru