在image上切一个透明的圆

图片描述

结构层次:UIView->UIImageView->UIImage,即把带有图片的imageview添加到UIView上,现在要在图片上 切一个透明的圆

阅读 3.2k
3 个回答

参考以下代码:

- (void)addShadowView {
    self.hollowFrames = @[[NSValue valueWithCGPoint:CGPointMake(20.0, 20.0)], [NSValue valueWithCGPoint:CGPointMake(120.0, 20.0)]];

    int radius = 15.0;
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height) cornerRadius:0];

    for (NSValue *point in self.hollowFrames) {
        UIBezierPath *circlePath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(point.CGPointValue.x, point.CGPointValue.y, 2.0*radius, 2.0*radius) cornerRadius:radius];
        [path appendPath:circlePath];
    }

    [path setUsesEvenOddFillRule:YES];

    CAShapeLayer *fillLayer = [CAShapeLayer layer];
    fillLayer.path = path.CGPath;
    fillLayer.fillRule = kCAFillRuleEvenOdd;
    fillLayer.fillColor = [UIColor blackColor].CGColor;
    fillLayer.opacity = 0.5;
    [self.layer addSublayer:fillLayer];
}

refs: http://stackoverflow.com/a/18925731/4733603

用PS钢笔工具勾出来,或者用魔术选取工具把白色部分选中并删除。

如果是网页的话:css的border-radius属性,能给你一点启发。

<html>
<head>
 <style>
   .box{
     width:50px;
     height:50px;
     border-radius:50%;
     overflow:hidden;
   }
 </style>
</head>
<body>
 <div class="box">
   <img src="./images/1.jpg" />
 </div>
</body>
</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题