2013-05-18 24 views
4

Imagerotate使用給定角度以度數旋轉圖像。更改Imagerotate的旋轉中心

旋轉的中心是圖像的中心,並且旋轉的圖像可能具有與原始圖像不同的尺寸。

如何更改旋轉中心以協調x_new和y_new並避免自動調整大小?

示例:圍繞紅點旋轉。

想到的

Example

+0

說實話 - 我沒有明白。你可以添加一個例子嗎? –

+0

除非您旋轉180度的倍數(如果圖像是正方形,否則倍數爲90),則無論您選擇哪個旋轉中心,圖像總是需要重新調整大小。如果您不想重新調整大小,則應在旋轉後裁剪出想要的部分。 – rpkamp

回答

2

第一個想法是這樣,它的新中心位於x_new,y_new旋轉並移動回移動圖像。

假設:

0 < x_new < w 
0 < y_new < h 

僞代碼:

new_canter_x = MAX(x_new, w - x_new) 
new_center_y = MAX(y_new, h - y_new) 

create new image (plain or transparent background): 
width = new_canter_x * 2 
height = new_center_y * 2 

copy your old image to new one to coords: 
new_center_x - x_new 
new_center_y - y_new 

imagerotate the new image. 

現在你只需要切,你有興趣了它的一部分。