旋转图像*无需调整大小
我想旋转图像(用户定义的旋转角度),但不会使图像变小。
该服务器有PHP 5.3+。 链接,代码和解释都非常受欢迎。
这不是完整的答案,但我会将四角作为坐标旋转角度,然后根据新坐标的范围计算新的边界框。 (假设坐标原点在左下角)。
corners = rotate_each ( [(left,top) (left,bottom), (right,top), (right,bottom)], angle)
new_bb_left = min([corners[0].x, corners[1].x, corners[2].x, corners[3].x])
new_bb_right = max([corners[0].x, corners[1].x, corners[2].x, corners[3].x])
new_bb_bottom = min([corners[0].y, corners[1].y, corners[2].y, corners[3].y])
new_bb_top = max([corners[0].y, corners[1].y, corners[2].y, corners[3].y])
这可能是一种方法。 计算对角线宽度。
PHP有一个平方根函数:http://se2.php.net/manual/en/function.sqrt.php通过这种方式,你应该有对角线宽度,你可以应用在转换后的图像上。
有许多解决方案,包括三角函数公式,但这个库似乎是捷径。
http://wideimage.sourceforge.net/
示例:http://wideimage.sourceforge.net/wp-content/current/demo/index.php?demo=rotate&output=preset%20for%20demo&colors=255&dither=1&match_palette=1
链接地址: http://www.djcxy.com/p/10497.html