2013-05-18 23 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. 

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