java - Java中如何在保持大小的情况下进行旋转?

标签 java rotation affinetransform

我一直在尝试,但没有成功。我希望使用 AffineTransform 旋转 128x128 图像,但每当我将其旋转到特定角度时,我都会得到 130x133 或 131x129 图像。我想保留它的 128x128。如何在 Java 中使用 AffineTransform 执行此操作?或者可以通过其他方法来完成此操作吗?谢谢!

public BufferedImage generate() {
    AffineTransform tx = new AffineTransform();
    tx.rotate(Math.toRadians(0.1));
    AffineTransformOp operation = new AffineTransformOp(tx, AffineTransformOp.TYPE_BICUBIC);
    BufferedImage t = operation.createCompatibleDestImage(img, img.getColorModel());
    return operation.filter(img, t);
}

最佳答案

您可以使用 CropImageFilter ( http://docs.oracle.com/javase/7/docs/api/java/awt/image/CropImageFilter.html ) 在旋转后裁剪图像。

关于java - Java中如何在保持大小的情况下进行旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21679383/

相关文章:

java - 如何使用 Java 的 Joda API 以月为单位计算差异

java - 不变换 Stroke 的 AffineTransform?

java - 在任何一种情况下都可以选择执行操作

java - 从 jar 文件加载资源文件的问题

javascript - 单击 Javascript 转换

rotation - Unity 对象不围绕枢轴点旋转

python - 在 pygame 中旋转图像,使其看起来像在旋转

java - 翻转和旋转图像。仿射变换在 java 中无法正常工作

c++ - 从三个 3D 点计算变换矩阵

java - 为什么 `short a = (byte)32767`变成-1?