在Java中,我想使用代码来变换和保存它们,而不是使用photoshop来变换我在程序中使用的图像。

我创建了一个AffineTransform对象“ at”,并称为rotate()方法。我有一个名为“ image”的BufferedImage。

我可以使用以下代码在屏幕上以所需的变换绘制图像:

g2d.drawImage(image, at, null);


我想要做的是将at和image的组合存储在新的BufferedImage image2中。我该怎么做才能使g2d.drawImage(image2,50,50, null);显示图像的旋转版本?

编辑:我已经微调了Ezequiel的答案以获得我想要的效果。
    这达到了目的:

BufferedImage image2= null;
AffineTransformOp affineTransformOp = new AffineTransformOp(at,AffineTransformOp.TYPE_BILINEAR);
image2 = affineTransformOp.filter(image, image2);
g2d.drawImage(image2, 50, 50, null);

最佳答案

使用AffineTransformOp类:

BufferedImage original; //Instatiate with desired image.
BufferedImage transformed:  //Used to store transformed image.
AffineTransform at; //Transformations needed.

AffineTransformOp affineTransformOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR);
affineTransformOp.filter(original, transformed );

07-26 09:42