2

PNG画像形式からメタデータを抽出しようとしています。このライブラリを使用していますか?http://code.google.com/p/metadata-extractor/

PNG形式がサポートされていると表示File format is not supportedされていても、PNG画像で試してみるとエラーが発生します。ソースから(メソッドでreadMetadataも、PNG形式をサポートしていないようです:http ://code.google.com/p/metadata-extractor/source/browse/Source/com/drew/imaging/ImageMetadataReader.java ?r = 1aae00f3fe64388cd14401b2593b580677980884

このコードも試してみましたが、PNGのメタデータも抽出されません。

ところで、私は次のようにimagemagickを使用してPNGにメタデータを追加しています:

mogrify -comment "Test" Demo/myimage.png

誰かがこのライブラリをPNG形式で使用したことがありますか、またはPNG画像からメタデータを抽出する他の方法はありますか?

4

1 に答える 1

4

PNGJを試すことができます(私は開発者です)

たとえば、すべてのチャンクをダンプするを参照してください。特定のテキスト チャンクを読みたい場合 (PNG では、各テキスト メタデータにキーと値があることを思い出してください)、次のように記述できます。

 pngr.getMetadata().getTxtForKey("mykey")

PNG チャンク構造の内部を覗く便利な小さな Windows プログラムはTweakPNG です。

更新: すべてのテキスト チャンクをチェックする場合 (いくつかの違いがある 3 つのタイプがあることに注意してください...)

PngReader pngr = FileHelper.createPngReader(new File(file));
pngr.readSkippingAllRows();
for (PngChunk c : pngr.getChunksList().getChunks()) {
      if (!ChunkHelper.isText(c))   continue;
      PngChunkTextVar ct = (PngChunkTextVar) c;
      String key = ct.getKey();
      String val = ct.getVal();
      // ... 
}

また、キーが繰り返されるテキスト チャンクが許可されていることにも注意してください。

于 2013-01-25T16:27:09.673 に答える