【问题标题】:How do I flip an image to the right using AffineTransform in Java?如何在 Java 中使用 AffineTransform 将图像向右翻转?
【发布时间】:2015-05-05 00:11:54
【问题描述】:

我有左翻转功能(见下面的代码),但我似乎无法找到如何进行右翻转。计算是否相似?

向左翻转:

{
    gb.drawImage(img, 0, 0, null);
    gb.dispose();

    AffineTransform tx = new AffineTransform();
    tx.translate(img.getHeight(null) / 2, img.getWidth(null) / 2);
    tx.rotate(Math.PI / 2);

    tx.translate(-img.getHeight(null) / 2, -img.getWidth(null) / 2);
    AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_NEAREST_NEIGHBOR);

    buffImg = op.filter(buffImg, null);
 }

【问题讨论】:

  • 你的意思是this
  • 或类似this
  • 第二个例子帮助很大!谢谢@MadProgrammer
  • 我正在寻找另一个可以根据旋转角度调整图像大小的示例,当我意识到第一个示例实际上是这样做的时候

标签: java bufferedimage affinetransform


【解决方案1】:

如果您想以 90 度的倍数向左或向右旋转,您可以改用 AffineTransform.getQuadrantRotateInstance(int) 方法:

AffineTransform rotateLeft = AffineTransform.getQuadrantRotateInstance(1);
AffineTransform rotateRight = AffineTransform.getQuadrantRotateInstance(-1);

还有锚定版本:

AffineTransform rotateRightCentered = AffineTransform.getQuadrantRotateInstance(-1, centerX, centerY);

如果您喜欢使用弧度,是的,它是相似的。向左 90 度是-(Math.PI / 2)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 2015-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多