如何用CoreGraphics画一张中间透明边缘不透明的image

例如我需要一张白色但是中间有一个透明的圆的图片来覆盖在图片上处理圆角头像的问题,该怎么绘制才能得出这张图片呢,我并不想直接把头像绘制成圆形。

自己来答吧,用CGContextClearRect这个函数就妥妥解决了,哈哈

楼主的答案不错,我再提供一个思路。贝塞尔曲线。

贝塞尔曲线 顺指针 是fill,逆时针是clip。
所以可以将中间你需要的地方加一个逆时针的path。这个的好处是,你中间扣个啥都可以实现了!五角星,还是圆角矩形。

UIBezierPath *path = [UIBezierPath bezierPathWithRect:self.bounds];
UIBezierPath *clipPath = [[UIBezierPath bezierPathWithRect:clipFrame] bezierPathByReversingPath];
[path appendPath:clipPath]; CGContextAddPathcontext, path.CGPath;
CGContextFillPathcontext;

你可以用九宫格的方式,中间一个正方形的view做成透明的,其余的view是白色的

发表评论

电子邮件地址不会被公开。 必填项已用*标注