在定义的路径中裁剪UIImage

时间:2013-01-16 21:13:40

标签: iphone ios objective-c ipad

  

可能重复:
  drawing UIImage inside a CGMutablePath

我的drawRect中有一条路径如下:

CGContextSetLineWidth(context, 1.5);
CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor);    
CGContextAddEllipseInRect(context, rect);
CGContextStrokePath(context);

CGContextClip(context);
CGContextTranslateCTM(context, 0.0, rect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, rect, self.image_.CGImage);

UIGraphicsBeginImageContext(rect.size);
UIImage * circleUserProfile = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

[circleUserProfile drawAtPoint:CGPointMake(0, 0)];

CGContextRestoreGState(context);

我有一个UIImage,我想让UIImage夹在这个圈子里面。上面的代码似乎是在我here之前做的,但仍然无效。这是为什么?

1 个答案:

答案 0 :(得分:1)

当您致电UIGraphicsBeginImageContext时,您正在创建一个新的上下文,推送您的上一个上下文(您完成所有绘图),并将新(空)一个作为当前上下文。您需要在调用UIGraphicsGetCurrentContext并执行绘图之前开始图像上下文。