到目前为止,我一直在使用
Graphics2D.rotate(Math.toRadians(-1), newImage.getWidth() / 2, newImage.getHeight() / 2);
为 OMR 应用程序旋转图像。结果是旋转但模糊的图像。我也怀疑这会使图像围绕其中心旋转。如何指定特定的像素位置作为旋转中心?
到目前为止,我一直在使用
Graphics2D.rotate(Math.toRadians(-1), newImage.getWidth() / 2, newImage.getHeight() / 2);
为 OMR 应用程序旋转图像。结果是旋转但模糊的图像。我也怀疑这会使图像围绕其中心旋转。如何指定特定的像素位置作为旋转中心?
我怀疑这会使图像围绕其中心旋转
你是对的,你需要
g2.rotate(Math.toRadians(-1), (newImage.getWidth() / 2) + 1, (newImage.getHeight() / 2) + 1);
因为坐标从左上角位置0, 0
(而不是1, 1
)开始,您需要添加1
到每个分割的宽度以获得中心。
如何指定特定的像素位置作为旋转中心?
正如@MadProgrammer 在他的评论中所说,x和y参数是rotate的第二个和第三个参数,所以这些是相对于Image
.