我正在從事一些java圖形編程。目前,我可以縮放一張圖片圖片,並存儲在一維數組中。 (它按行存儲)如何設置縮放中心?
我的代碼像新的位置在哪裏? newpoz = (int)(x * scale) + (int)(y * scale) * width;
這給了我一個陣列中的位置。但它通過0,0座標來調整左上角的內容。如何在屏幕上將其設置爲中心?所以到screen.getWidth()/ 2; screen.getHeight()/ 2。
有人能幫助您?如果有任何問題,我會在評論中回答。
我正在從事一些java圖形編程。目前,我可以縮放一張圖片圖片,並存儲在一維數組中。 (它按行存儲)如何設置縮放中心?
我的代碼像新的位置在哪裏? newpoz = (int)(x * scale) + (int)(y * scale) * width;
這給了我一個陣列中的位置。但它通過0,0座標來調整左上角的內容。如何在屏幕上將其設置爲中心?所以到screen.getWidth()/ 2; screen.getHeight()/ 2。
有人能幫助您?如果有任何問題,我會在評論中回答。
要縮放像素座標的一些中心(a, b)
:
(x', y') = ([x - a] * scale + a, [y - b] * scale + b)
像以前一樣使用pixelArray[y * width + x]
取原始像素數據,並用新的座標,同樣設置目標像素。
編輯:你可能也想看看雙線性插值,因爲如果直接使用,當前的原始方法可能會在最終圖像中產生鋸齒狀的邊緣。
如果您首先將圖像的中心轉換爲(0,0),然後縮放圖像,然後翻轉圖像,您將有效縮放圖像並獲得所需的居中。
同上,用於Y軸。
有了一點數學,你可以一步到位做到這一點。鍛鍊留給學生。
但是,如果您遇到麻煩,請發佈您的嘗試,然後我們可以幫助您修復代碼。
謝謝你的回答! – pocokknight