2

C ++でtiffメタデータを読むことになると、私は完全に迷子になります。グーグルを調べましたが、例が見つかりません。私がやりたいのは、評価プロパティを読み取り、コンソールに出力することだけです。そこから取得できるはずです。前もって感謝します。

UPDATEありがとうございます。libtiffライブラリを詳しく調べます。

libtiffフォルダーを調べると、私が達成しようとしていることには少しやり過ぎのようです。ライブラリを設定するファイルの「プロパティ/詳細」タブを読むことは可能ですか、それとも非常に遅れたものを求めていますか?繰り返しますが、私が探しているのは、彼のファイルに評価があるかどうかだけです。

4

2 に答える 2

4

さて、libtiffはこの機能のすべてを公開しています、あなたはただドキュメントを読む必要があります。

メタデータを設定するには、TIFFSetFieldがあります

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

同様に、メタデータを取得するには、TIFFGetFieldがあります

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

ここで注意すべきことの1つは、標準のTIFFタグまたは独自のタグを読んでいる場合です。それらがプロプライエタリであり、libtiffライブラリにない場合、誰かがそれらを独自に追加しました。その場合、libtiffのバージョンに組み込む(または単に取得する)ためにタグ宣言が必要です。それに関しては、このガイドに従うことができます(私はそれをしなければなりませんでした)。

于 2012-05-08T00:02:44.780 に答える
0

TIFF画像を処理するImageMagickがあります:http://www.imagemagick.org/script/formats.php下にあるlibTiffを使用するフレームワークを使用してメタデータをプルできます。これを使用すると、呼び出しを使用してメタデータタグをプルできるはずです。TIFFGetFieldEdS.が提案するのを好きになる

これは、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

于 2012-05-08T00:07:29.967 に答える