3

私のユースケースは非常に単純で、他の多くの開発者と共有されていると思います。

私はしたいと思います:

 1. Load an image
 2. Read EXIF Orientation details (If available)
 3. Rotate (90, 180, 270) degrees
 4. Resize and store images.

フォーラムを調べてから、次のことを試しました:

Sanselan: 読み取りますEXIFが、画像は読み取りませんJPG。また、commons-imagingダウンロード リンクはすべて壊れています。

Java ImageIO/Graphics2D: 回転/サイズ変更できます (1 つのライナーではありませんが、理解できます)

JPG*しかし、すべての画像を読み取るわけではありません(CMMException一部のjpgファイルに対してスローされます)

残りは古すぎてもうメンテナンスされていないか、ドキュメントがまったくないか、「良い」ものを見逃していました。

これらのいくつかの「単純な」ユースケースをサポートするライブラリを提案できる人はいますか?

Sanselan読んEXIFで使って大丈夫です。Read/Rotate/Re-size (JPGs)私の主な問題です

4

3 に答える 3

4

Thumbnailatorは、(a) 画像をロードする、(b) Exif メタデータを読み取って画像を自動的に回転させる、(c) サイズを変更して (d) 画像を 1 つのステートメントで保存する、外部依存関係を持たない単純な Java ライブラリです。

Thumbnails.of("path/to/image")
    .size(320, 240)
    .toFile("path/to/thumbnail");

上記は次のようになります。

  • 画像を開く
  • 320 ピクセル x 240 ピクセルの領域に収まるようにサイズを変更します。
  • 元の画像の縦横比を維持し、
  • Exif メタデータに従って画像を適切に配置し、
  • 新しい画像に保存する

追加のローテーションを実行したい場合は、rotateメソッドも利用できます。

免責事項: 私は Thumbnailator のメンテナーです。

于 2013-06-13T13:42:52.137 に答える
2

これだけを行う必要がある場合は、やり過ぎかもしれませんが、OpenCVは優れた画像処理ライブラリです。Java バインディングが付属しており、BSD ライセンスの下にあります。

これは単純なユースケースではやり過ぎだと思います。単純に、もっと多くのことができるからです。単純に、多くの言語とのバインディングがあり、ほとんどどこにでも移植可能で、現在でも GPU をサポートしているためです:)

私が思うにあなたが望むものに正確に答えるSOの質問がすでにあります。例については、こちらをご覧ください

お役に立てれば

于 2013-06-13T13:06:12.030 に答える
0

Java 2D ライブラリ自体を使用することをお勧めします。

お気に入り :

paint(Graphics g)
Graphics g2= (Graphics)g
g2.draw();
g2.rotate(give parameters)
于 2013-06-13T12:04:22.220 に答える