2

Javaで画像のサイズを変更したい。

今まで私はこれを使用します:

BufferedImage resizedImage = new BufferedImage((int) new_dim.getWidth(), (int) new_dim.getHeight(), type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, (int) new_dim.getWidth(), (int) new_dim.getHeight(), null);
g.dispose();

newDimはディメンションです。

しかし、結果は品質が非常に悪いです...

この簡単な仕事をする商用の無料ライブラリはありますか?

4

3 に答える 3

8

imgscalrを試してみてください:

https://github.com/thebuzzmedia/imgscalr

http://www.htmlgoodies.com/beyond/java/create-high-quality-thumbnails-using-the-imgscalr-library.html

于 2012-12-15T13:46:47.017 に答える
6

Thumbnailatorは、画像のサイズ変更操作、特に画像の縮小に特化したオープンソース(MITライセンス)ライブラリです。

たとえば、次のようにサイズを変更しBufferedImageます。

BufferedImage sourceImage = // ...
BufferedImage resizedImage = 
    Thumbnails.of(sourceImage)
        .size(newWidth, newHeight)
        .asBufferedImage();

サムナイレーターは柔軟な入力と出力を提供するため、入力と出力を組み合わせて組み合わせることができFileますBufferedImage

BufferedImage sourceImage = // ...
Thumbnails.of(sourceImage)
    .size(newWidth, newHeight)
    .toFile(destinationFile);

また

File sourceFile = // ...
BufferedImage resizedImage = 
    Thumbnails.of(sourceFile)
        .size(newWidth, newHeight)
        .asBufferedImage();

ライブラリは、サイズ変更された画像の品質を向上させるための手法を使用し、速度と品質のバランスを保ちながらそれを実行します。Thumbnailatorプロジェクトページには、画質の比較があります。

免責事項:私は図書館の管理者です

于 2012-12-15T13:59:53.993 に答える
1

少なくとも品質について、再考するように説得してみてください

これg.setRenderingHints(KEY_INTERPOLATION, VALUE_INTERPOLATION_BICUBIC);を見てみることができます。

シャープネスなどのためのImageFiltersもあります。

于 2012-12-15T14:01:16.367 に答える