2013-03-24 43 views
0

我使用如何在Java中關於特定點而不是圖像中心旋轉圖像?

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

一種用於OMR應用旋轉圖像迄今。結果是旋轉但模糊的圖像。此外,我懷疑這旋轉關於其中心的圖像。我如何指定一個特定的像素位置作爲旋轉的中心?

+1

第二個參數是要旋轉的x/y位置。就我個人而言,我使用'AffineTransformation'來代替,這一行[this](http://stackoverflow.com/questions/14884480/rotate-an-image-in-java-by-the-specified-angle/14885645#14885645)例如 – MadProgrammer 2013-03-24 03:19:54

回答

2

我懷疑這繞其中心圖像

你是正確的,你需要

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

因爲事實,即座標開始在左上角 - 手角位置0, 0,(而不是1, 1),您需要將1添加到每個劃分的寬度以獲得中心。

如何指定一個特定的像素位置作爲旋轉中心?

由於@MadProgrammer在他的評論中表示,Xÿ參數是rotate第二和第三參數,所以這些都是相對於Image的像素位置。

+2

可以告訴你在這裏添加1的意義是什麼?我如何指定像素位置,比如說(p,q)? – Coder 2013-03-24 03:21:18