1

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

基本上我有一个图像;我想缩放和调整图像大小,然后将其剪辑为矩形,最后将其绘制到 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)];

问题是当我旋转图像时,我不知道图像上下文的新大小是多少。接下来,编辑图像中的图像没有 旋转..

4

1 回答 1

3

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

这样,您的尺寸将永远不会改变,因为任何太大的东西都会被简单地切断。

编辑另外,这个函数需要弧度,而不是度数,所以你不需要像你一样进行转换。如果你想要 45 度,它只是 PI / 4(M_PI_4在 math.h 中存储为常数)。

于 2012-06-13T09:22:52.507 回答