如何在Java中旋转缓冲图像?

Ari*_*zvi 1 java bufferedimage image-processing

我有一个缓冲图像,即:

  BufferedImage buffer = ImageIO.read(new File(file));
Run Code Online (Sandbox Code Playgroud)

现在我想旋转它。.所以我该怎么做?

以前我使用过图像格式,即:

Image image = ImageIO.read(new File(file));
Run Code Online (Sandbox Code Playgroud)

并可以使用以下方法轻松旋转图像:

   AffineTransform at = new AffineTransform();
   at.rotate(0.5 * angle * Math.PI, width/2, height/2);
Run Code Online (Sandbox Code Playgroud)

但是我不赞成如何使用缓冲图像?你能帮助我吗??

kal*_*ech 6

例:

BufferedImage buffer = ImageIO.read(new File(file));
AffineTransform tx = new AffineTransform();
//tx.scale(scalex, scaley);
//tx.shear(shiftx, shifty);
//tx.translate(x, y);
tx.rotate(radians, buffer.getWidth()/2, buffer.getHeight()/2);

AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
buffer = op.filter(buffer, null);
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 这仅适用于正方形图像。 (2认同)