1

大家,我想在相机上制作圆形蒙版。

我尝试这种方式:

- (void)drawRect:(CGRect)rect
{
    // Drawing code
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextAddArc(context, self.frame.size.width/2, self.frame.size.height/2, 200, 0, M_PI *2, 0);
    //Set the stroke color to black
    [[UIColor blackColor]setStroke];
    //Define line width and cap
    CGContextSetLineWidth(context, 200);
    CGContextSetLineCap(context, kCGLineCapButt);
    //draw it!
    CGContextDrawPath(context, kCGPathStroke);
}

只需设置足够大的线,但我认为它可以设置 alpha。

谢谢。

4

2 回答 2

0

由于您没有提到可调整的圆形遮罩,我假设您需要在相机视图上放置一个静态圆形遮罩。如果您需要动态创建的圆圈,这不是正确的答案。无论如何,了解一种简单的方法可能会有所帮助:

  • 准备一个实际上是圆形的png,并且该圆形的内部是透明的(确保您处理正确的宽度和高度,甚至为不同的设备创建多个圆形png,例如iPhone5和iPhone4)
  • 使用 imagePickerController 的 cameraOverlayView 属性添加覆盖图像

     UIView *tmp_camera_overlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
     UIImageView *tmp_camera_bkgr =[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"circle_screen_overlay.png"]];  
     tmp_camera_bkgr.frame = CGRectMake(0, 0, 320, 480); 
     [tmp_camera_overlay addSubview:tmp_camera_bkgr];
     imagePickerController.cameraOverlayView = tmp_camera_overlay;
    
于 2013-06-27T12:16:32.620 回答
0
[[UIColor colorWithRed:0 green:0 blue:0 alpha:alpha/255.0] setStroke];

设置你想要的 alpha 百分比

于 2013-06-27T08:28:22.290 回答