【发布时间】:2013-11-11 09:38:41
【问题描述】:
我有一张经过软裁剪的图片。
即 图像边界是宽度 3 和高度 5。 在图像中,我在 (x,y) 1,4 处进行了软裁剪,并且边界宽度为 1 和高度为 1。
将图像旋转 90 度后如何获得新的裁剪位置 (x,y)?
也许是仿射变换?
【问题讨论】:
我有一张经过软裁剪的图片。
即 图像边界是宽度 3 和高度 5。 在图像中,我在 (x,y) 1,4 处进行了软裁剪,并且边界宽度为 1 和高度为 1。
将图像旋转 90 度后如何获得新的裁剪位置 (x,y)?
也许是仿射变换?
【问题讨论】:
是的,您可以使用 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);
请注意,软裁剪区域的左上角在旋转后将不再是左上角而是左下角。
【讨论】: