【问题标题】:Rotate an image with crop使用裁剪旋转图像
【发布时间】:2013-11-11 09:38:41
【问题描述】:

我有一张经过软裁剪的图片。

即 图像边界是宽度 3 和高度 5。 在图像中,我在 (x,y) 1,4 处进行了软裁剪,并且边界宽度为 1 和高度为 1。

将图像旋转 90 度后如何获得新的裁剪位置 (x,y)?

也许是仿射变换?

【问题讨论】:

    标签: java rotation transform


    【解决方案1】:

    是的,您可以使用 AffineTransform。

    您可以使用 AffineTransform.getRotateInstance 和 AffineTransform#transform(Point2D, Point2D)。

    像这样使用它:

    AffineTransform transform = AffineTransform.getRotateInstance(Math.PI / 2.0, width / 2.0, height / 2.0);
    Point2D.Double point = new Point2D.Double(1, 4);
    Point2D.Double result = new Point2D.Double();
    transform.transform(point, result);
    

    请注意,软裁剪区域的左上角在旋转后将不再是左上角而是左下角。

    【讨论】:

    • 在上面的代码中确实犯了两个错误。在宽度和高度前面有减号,并且确实使用了 Math.PI 而不是 Math.PI / 2.0。现在更正了,所以如果你已经尝试过,你可以再做一次。
    猜你喜欢
    • 2015-02-18
    • 2021-10-01
    • 2011-12-09
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    相关资源
    最近更新 更多