2012-01-21 6 views
11

私はJava用の画像スケーリングライブラリをいくつか検索して見つけました。しかしどちらと一緒に行くべきかわからない。サーバーからアップロードされた画像からサムネイルを生成する必要があります。ベスト画像スケーリングライブラリ

あなたはどちらが良いか悪いかを知ることができれば素晴らしいでしょう。

私が持っているリストである:私の民間プロジェクト、Iドンで

  • JMagick
  • im4java
  • Thumbnailator
  • のjava-イメージスケーリング
  • JAI

答えて

4

特定のライブラリを使用していない場合、Java用に提供されている機能はまともなものです私の結果画像のスケーリングをしたいだけなら、完全な画像処理ライブラリはあまりにも重くなります。

私はhttp://www.mkyong.com/java/how-to-resize-an-image-in-java/で与えられたコードスニペットを使用していますが、これは非常にうまくいきます。

5

サムネイルを生成するJava APIは、高品質のサムネイルが必要な場合は十分ではありません。

高品質のサムネイルを生成するには、リストしたようなフレームワークを使用します。 ImgScalr(https://github.com/thebuzzmedia/imgscalr)とThumbnailatorを試しました。 私のマイクロベンチマークテストでは(一般的な結論には実際には使用できません)、サムネイル作成ツールは高速ですが、透明でサムネイルを生成する場合は高速です。

私もJMagickを試してみましたが、コードをコンパイルして設定するだけの問題にぶつかりました。その基本的なコード私は全く理解できない言語で書かれているフレームワークと、後で問題に実行する方法についても少し心配 - C.

ます。また、ここでの議論を便利かもしれません。私のためにHow can I resize an image using Java?

5

を簡単なニーズ、Thumbnailatorは完璧でした。小さなlib;流暢で、きれいで、よく文書化されたAPIです。私の場合は

、それだけで"net.coobird" % "thumbnailator" % "0.4.8"依存していた:

//.. 
Thumbnails.of(originalFile) 
     .size(300, 300) 
     .toFile(thumbnailFile) 
//.. 

を行って。基本的には、Java 2D APIの上にあるフレンドリーなラッパーです。特定の(thumbnailin ')ニーズに役立ちます。学習曲線はありません。


あなたが本当に画像をいくつかの重量物の持ち上げを行う必要がある場合を除き、私はセットアップに複雑さと可動部品を追加することになり、外部バイナリ(ImageMagickのとJMagickなどのラッパー)、依存を警戒すると思います。特にあなたのスタックが私のようなものであれば:Heroku上で動作するScala/Javaアプリケーション。 heroku-buildpack-imagemagick-cedar-14のようなものがありますが、アプリにバンドルされている単純な依存関係は無限にきれいです。