如何在java中旋转关于特定点而不是图像中心的图像?

时间:2013-03-24 03:12:53

标签: java image rotation graphics2d

我到目前为止一直在使用

Graphics2D.rotate(Math.toRadians(-1), newImage.getWidth() / 2, newImage.getHeight() / 2);

旋转OMR应用程序的图像。结果是旋转但模糊的图像。我也怀疑这会使图像围绕其中心旋转。如何指定特定像素位置作为旋转中心?

1 个答案:

答案 0 :(得分:2)

  

我怀疑这会使图像围绕其中心旋转

你是对的,你需要

g2.rotate(Math.toRadians(-1), (newImage.getWidth() / 2) + 1, (newImage.getHeight() / 2) + 1);

由于这一事实,该坐标始于左上角位置0, 0,(而不是1, 1),您需要为每个位置添加1划分宽度以获得中心。

  

如何指定特定的像素位置作为旋转中心?

正如@MadProgrammer在评论中所说, x y 参数是rotate中的第2和第3个参数,所以这些是像素位置与Image的关系。