在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);
最佳答案
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 );