在Java中存储已转换的BufferedImage

时间:2014-10-21 13:12:07

标签: java bufferedimage affinetransform

在Java中,我没有使用photoshop来转换我的图像(我在程序中使用),而是希望使用代码来转换和保存它们。

我创建了一个“at”的AffineTransform对象并调用了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);

1 个答案:

答案 0 :(得分:2)

使用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 );