Java:旋转图像

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

这是你如何做到的。 这段代码假定存在一个名为“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); 

AffineTransform实例可以连接在一起(加在一起)。 因此,您可以进行“转移到原点”,“旋转”和“移回到所需位置”的转换。

 public static BufferedImage rotateCw( BufferedImage img ) { int width = img.getWidth(); int height = img.getHeight(); BufferedImage newImage = new BufferedImage( height, width, img.getType() ); for( int i=0 ; i < width ; i++ ) for( int j=0 ; j < height ; j++ ) newImage.setRGB( height-1-j, i, img.getRGB(i,j) ); return newImage; } 

https://coderanch.com/t/485958/java/Rotating-buffered-image