Java:旋转图像

2022-09-01 21:59:48

我需要能够单独旋转图像(在java中)。到目前为止,我唯一发现的是g2d.drawImage(image,affinetransform,ImageObserver)。不幸的是,我需要在特定点绘制图像,并且没有一个参数为1.旋转图像和2的方法。允许我设置x和y.任何帮助是值得赞赏的


答案 1

这就是你如何做到这一点。此代码假定存在名为“image”的缓冲图像(如您的评论所说)

// The required drawing location
int drawLocationX = 300;
int drawLocationY = 300;

// Rotation information

double rotationRequired = Math.toRadians (45);
double locationX = image.getWidth() / 2;
double locationY = image.getHeight() / 2;
AffineTransform tx = AffineTransform.getRotateInstance(rotationRequired, locationX, locationY);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);

// Drawing the rotated image at the required drawing locations
g2d.drawImage(op.filter(image, null), drawLocationX, drawLocationY, null);

答案 2

AffineTransform实例可以串联(加在一起)。因此,您可以拥有一个组合“移动到原点”,“旋转”和“移回所需位置”的转换。


推荐