7

私はこの質問を見ましたが、私が持っている質問に実際に答えているようには見えません. 任意の解像度の画像ファイルがあります。その画像をBufferedImage特定の解像度 (たとえば、この例では 800x800) でオブジェクトに読み込む必要があります。Image クラスを使用して画像を新しいサイズにスケーリングできることは知っていますgetScaledInstance()が、それを元のサイズに戻す方法がわかりませんBufferedImage。バッファリングされた画像を特定のサイズにスケーリングする簡単な方法はありますか?

注記II は、特定の倍率で画像を拡大縮小したくありません。画像を取得して、特定のサイズを作成したいと考えています。

4

3 に答える 3

9

このようなもの?:

 /**
 * Resizes an image using a Graphics2D object backed by a BufferedImage.
 * @param srcImg - source image to scale
 * @param w - desired width
 * @param h - desired height
 * @return - the new resized image
 */
private BufferedImage getScaledImage(Image srcImg, int w, int h){
    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TRANSLUCENT);
    Graphics2D g2 = resizedImg.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    g2.drawImage(srcImg, 0, 0, w, h, null);
    g2.dispose();
    return resizedImg;
}
于 2012-07-06T18:02:19.677 に答える
4

必要なサイズの新しい BufferedImage を作成し、元の画像を新しい画像にスケーリングしたペイントを実行できます。

BufferedImage resizedImage = new BufferedImage(new_width, new_height, BufferedImage.TYPE_INT_ARGB); 
Graphics2D g = resizedImage.createGraphics();
g.drawImage(image, 0, 0, new_width, new_height, null);
g.dispose();
于 2012-07-06T18:01:50.500 に答える
1

このウェブサイトを見る Link1

またはこのLink2

于 2012-07-06T18:03:12.527 に答える