2012-05-07 1 views
1

Эй, я полностью потерялся, когда дело доходило до чтения метаданных tiff в C++, я просмотрел google и не могу найти никаких примеров. Все, что я хочу сделать, это прочитать свойство рейтинга и выводить его на консоль, я должен уметь его оттуда. благодарит заранее.Может ли кто-нибудь уточнить, как получить метаданные рейтинга tiff в C++ или только рейтинг файлов, как читает Win Explore?

UPDATE благодарит людей я буду выглядеть более в библиотеку LibTIFF

Глядя в папку LibTIFF это кажется немного излишним за то, что я пытаюсь сделать. Можно ли прочитать вкладку «Свойства/детали» файла-стиха, устанавливающего библиотеку, или я прошу что-то чрезвычайно заторможенное. Опять все, что я ищу, - это если есть рейтинг по файлу или нет.

+0

1) Узнайте, как делать ввод-вывод в C++. 2) Изучите формат файла TIFF (предположим, это версия с меткой изображения). 3) Напишите консольное приложение. Кроме того, используйте библиотеку, которая сделает это за вас. –

+0

Используйте библиотеку ... действительно, это сэкономит вам много времени. –

ответ

3

Ну, libtiff раскрывает всю эту функциональность, вам просто нужно прочитать документы.

Для установки метаданных, вы TIFFSetField

int 
TIFFSetField(TIFF* tif, ttag_t tag, ...) 

Аналогично, для извлечения метаданных у вас есть TIFFGetField

int 
TIFFGetField(TIFF* tif, ttag_t tag, ...) 

Одна вещь, чтобы отметить здесь, если вы читаете стандартные теги TIFF или проприетарные теги. Если они запатентованы, а не в библиотеке libtiff, кто-то добавил их самостоятельно, и в этом случае вам нужно, чтобы их объявления тегов включались в вашу версию libtiff (или просто получили их). Вы можете следовать за this guide, если дело доходит до этого (я должен был это сделать).

0

Существует ImageMagick, который делает обрабатывать TIFF изображения: http://www.imagemagick.org/script/formats.php вы можете вытащить метаданные с помощью рамки он использует libTiff снизу, с помощью этого вы должны быть в состоянии вывести метаданные tags, используя вызовы TIFFGetField как Ed S. предлагает

Это использование образца вымываются из страницы LibTIFF:

TIFF* tif = TIFFOpen("myfile.tif", "r"); 
if (tif) { 
uint32 imageWidth, imageLength; 
uint32 tileWidth, tileLength; 
uint32 x, y; 
tdata_t buf; 

TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth); 
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength); 
TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth); 
TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength); 
buf = _TIFFmalloc(TIFFTileSize(tif)); 
for (y = 0; y < imageLength; y += tileLength) 
    for (x = 0; x < imageWidth; x += tileWidth) 
    TIFFReadTile(tif, buf, x, y, 0); 
_TIFFfree(buf); 
TIFFClose(tif); 
} 

есть также список тегов, которые обрабатываются библиотекой: http://www.libtiff.org/support.html

 Смежные вопросы

  • Нет связанных вопросов^_^