19


IPTCメタデータをJPEGおよびTIFFに読み書きするためのオープンソースJavaライブラリを知っている人はいますか? 現在、Apache Sanselan を使用しています。残念ながら、IPTC の読み取りのみが可能で、書き込みはできません (http://commons.apache.org/sanselan/formatsupport.html )。
どうぞよろしくお願いいたします。
デニス。

4

6 に答える 6

5

IIM4Jを見てください。IIMWriterIPTC IIM タグを (jpeg) 画像に書き込むために使用します。

于 2011-10-31T13:12:37.710 に答える
5

これはかなり古い質問のようですが、以下は役立つ情報です。

EXIF、IPTC などのメタデータの読み取りは、Apache Commons Imaging (以前の Sanselan) または Metadata Extractor (draw noaks による) を使用して行うことができます。

メタデータの書き込みは、次のクラスを使用して Apache Commons Imaging を使用して実行できます。

EXIF - ExifRewriter ( http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/exif/ExifRewriter.html )

IPTC - JpegIptcRewriter ( http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/iptc/JpegIptcRewriter.html )

XMP - JpegXmpRewriter ( http://commons.apache.org/proper/commons-imaging/apidocs/org/apache/commons/imaging/formats/jpeg/xmp/JpegXmpRewriter.html )

于 2014-07-22T11:42:36.017 に答える
4

Apache Commons Imaging (以前のsanselan)は、次のリリースの svn リポジトリ コードに IPTC メタデータを書き込むためのサポートを追加しました。これは、svn リポジトリからチェックアウトした最新のトランク コードでそうであることを確認しました。コードは安定しているように見えるので、リリースがそれほど遠くないことを願っています. 私のプロジェクトでは、これで十分です。

于 2012-06-26T16:57:49.200 に答える
1

私は過去に自分自身を調べましたが、見つかりませんでした。http://sourceforge.net/projects/image-tagger/などのオープン ソース プロジェクトを調べて、その方法を確認することをお勧めします。

于 2010-10-05T20:41:02.963 に答える
0

メタデータを読み取るには、「 metadata-extractor 」を参照する必要があると思います。これは、画像ファイルからメタデータを読み取るための Java ライブラリを開発するオープン ソース プロジェクト (Apache 2.0 ライセンス) です。

現時点では、このプロジェクトは次の画像のメタデータにアクセスできます。

  • エクシフ
  • IPTC
  • XMP
  • JFIF / JFXX
  • ICC プロファイル
  • Photoshop フィールド

metadata-extractor 」はgoogle codeでホストされています。

2.4.0 バージョンの簡単なコード例を次に示します。

public void example() throws Exception {
    File jpegFile = new File("yourJpgFile.jpg");
    Metadata metadata = ImageMetadataReader.readMetadata(jpegFile);

    Iterator directory = metadata.getDirectoryIterator();
    while (directory.hasNext()) {
        Object tag = directory.next();
        if (tag instanceof ExifDirectory) {
            Iterator tags = ((ExifDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("EXIF: "+tags.next().toString());
            }
        } else if (tag instanceof IptcDirectory) {
            Iterator tags = ((IptcDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("IPTC: "+tags.next().toString());
            }
        } else if (tag instanceof JpegDirectory) {
            Iterator tags = ((JpegDirectory) tag).getTagIterator();
            while (tags.hasNext()) {
                System.out.println("JPEG: "+tags.next().toString());
            }
        } else {
            System.err.println(tag.getClass());
        }           
    }
}
于 2011-09-13T13:47:19.993 に答える