我一直在使用这个示例代码,并且效果很好。 http://www.platinumball.net/blog/2009/03/30/iphone-uiimage-rotation-and-mirroring/
我无法弄清如何按照自定义的角度(0到360度之间)进行旋转...
我一直在使用这个示例代码,并且效果很好。 http://www.platinumball.net/blog/2009/03/30/iphone-uiimage-rotation-and-mirroring/
我无法弄清如何按照自定义的角度(0到360度之间)进行旋转...
你需要做的就是和这篇文章中在旋转方面所做的基本相同的事情:
CGSize size = sizeOfImage;
UIGraphicsBeginImageContext(size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextRotateCTM(ctx, angleInRadians);
CGContextDrawImage(ctx, (CGRect){{}, size}, image);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
在旋转图像时,除了补偿旋转中心外,您可能还需要将CTM进行翻译。如果您不想在旋转时裁剪图像的边缘,则应使用一些基本三角函数来增加其大小。
ctx
只是图形上下文。我已经更新了源代码来指示它。 - Andrew PouliotUIGraphicsGetCurrentContext()
存储当前图形上下文的引用,然后在两行代码后再次运行UIGraphicsGetCurrentContext()
? - user577537