ホームページ >Java >&#&チュートリアル >Java で BufferedImage を適切にスケールする方法: リサンプリングとクロッピング?
BufferedImage のスケーリング: クロップではなく、リサンプリングの詳細を調べる
Graphics2D クラスを使用して BufferedImage をスケーリングしようとすると、期待した結果が得られない可能性がありますこの方法には制限があるためです。 scale() メソッドは、基になる画像データを変更せずに現在のグラフィックス コンテキストを単純に変換します。
AffineTransformOp: リサンプリングに推奨されるソリューション
リサンプリングについては、AffineTransformOp クラスが提供します。補間タイプを指定できるため、柔軟性が向上します。補間は、画像をスケーリングするときに中間ピクセル値を計算する方法を決定します。 AffineTransformOp を使用して画像をスケーリングする例を次に示します。
BufferedImage before = getBufferedImage(encoded); int w = before.getWidth(); int h = before.getHeight(); BufferedImage after = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); AffineTransform at = new AffineTransform(); at.scale(2.0, 2.0); AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); after = scaleOp.filter(before, after);
この例では:
キー ポイント
以上がJava で BufferedImage を適切にスケールする方法: リサンプリングとクロッピング?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。