-3

4000x3000のような大きな解像度の写真がいくつかあります。例として、画像サイズを1000x900のような小さいサイズに変更できるJavaプログラムを作成したいと思います。誰かが私にこのタスクを達成するのを助けることができるいくつかの特定のJavaライブラリを教えてもらえますか?そのような種類のチュートリアルへのリンクを投稿できれば、本当に役に立ちます。

4

3 に答える 3

1

ここに投稿を送信する前に、Google を試してください... http://www.mkyong.com/java/how-to-resize-an-image-in-java/、単純な Google で豊富な結果が得られます、それらがあなたのニーズに合わない場合は、ここで質問してみてください。

于 2013-01-22T07:14:34.940 に答える
1

java.awt.Image.getScaledInstanceそれができます。しかし、より信頼性が高く、より高速なアプローチは次のとおりです

于 2013-01-22T07:19:37.973 に答える
1

Java ネイティブ クラスを使用するこのメソッドを呼び出して取得できます。

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
...

public static BufferedImage resizeImage(Image originalImage, int newWidth, int newHeight) {
    BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB);
    Graphics2D g = resizedImage.createGraphics();

    g.setComposite(AlphaComposite.Src);
    g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

    g.drawImage(originalImage, 0, 0, newWidth, newHeight, this);
    g.dispose();
    return resizedImage;
}

多くの画像タイプがあります (BINARY、GRAY、RGB、BGR、ARGB、ABGR...)。いずれかを選択するか (BufferedImage.TYPE_INT_ARGB を選択したように)、この値をパラメーターとして宣言することができます。詳細については、BufferedImage クラスを参照してください。

于 2013-01-22T07:28:02.937 に答える