java - 如何在 java 中旋转缓冲图像?

标签 java image-processing bufferedimage

我有一个缓冲图像即:

  BufferedImage buffer = ImageIO.read(new File(file));

现在我想旋转它..那我该怎么做呢??

以前我使用的图像格式是:

Image image = ImageIO.read(new File(file));

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

   AffineTransform at = new AffineTransform();
   at.rotate(0.5 * angle * Math.PI, width/2, height/2);

但我不知道如何使用缓冲图像来做到这一点??你能帮帮我吗??

最佳答案

例子:

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

另见:

关于java - 如何在 java 中旋转缓冲图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9132454/

相关文章:

java - 尽可能快地清除透明的 BufferedImage

java - 如何从原始数据创建 BufferedImage

java - 如何使用类中的参数返回特定方法的名称

image-processing - 使用卷积神经网络识别图像中的多个对象

php - 如何在给定 url 的情况下从图像中获取超链接

image-processing - 使用 keras-tensorflow 时出现导入错误 ('Could not import PIL.Image. '

java - 有没有更快的方法来遍历java中的BufferedImage的像素?

java - Java 中的内部类和字符串文字

Java Cipher - PBE 线程安全问题

java - Java-selenium 上的 StaleElementReferenceException 错误