iOS:使用CGContextRotate旋转

时间:2012-06-13 08:57:58

标签: ios cgcontext rotation cgcontextdrawimage

我试图旋转图像,我想在图像文件上绘制(到上下文。 一切正常,除非我旋转图像。

基本上我有一张图片;我想缩放和调整图像大小,然后将其剪辑为矩形并最终将其绘制到UICurrentContext;

//create a new graphic context
UIGraphicsBeginImageContext(CGSizeMake(500, 500));
CGContextRef graphicContext = UIGraphicsGetCurrentContext();
CGContextDrawImage(graphicContext, CGRectMake(0, 0, rect.size.width, rect.size.height), image.CGImage);
CGContextRotateCTM(graphicContext, 45 * M_PI/180.0);
UIImage* editedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

//draw it to the current context
[editedImage drawAtPoint:CGPointMake(0,0)];

事情是当我旋转图像时,我不知道imagecontext的新大小是什么。接下来,编辑图像中的图像旋转..

1 个答案:

答案 0 :(得分:3)

您需要在绘制之前旋转上下文。我知道这看起来很傻,但要用一张纸的比喻......这是一张无法移动的纸。相反,你必须绕过它然后画画。

这样,你的体型永远不会改变,因为任何太大的东西都会被简单地切掉。

编辑此外,此功能采用弧度而非度数,因此您无需像现在一样进行转换。如果你想要45度它只是PI / 4(在math.h中存储为常量M_PI_4)。