OGeek|极客世界-中国程序员成长平台

标题: objective-c - 如何用圆圈 mask 方形图像并在图像周围放置黑色边框 [打印本页]

作者: 菜鸟教程小白    时间: 2022-10-23 05:23
标题: objective-c - 如何用圆圈 mask 方形图像并在图像周围放置黑色边框

我有一个 40x40 的方形图像,我想通过剪裁使其变圆,但还要在图像周围放置一个黑色的 5 像素边框。

我有以下内容掩盖了方形图像,因此它现在是圆形的

 UIImage *image = self.imageView.image;
        CGSize imageSize = image.size;
        CGRect imageRect = CGRectMake(0, 0, imageSize.width, imageSize.height);

        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
        // Create the clipping path and add it
        UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:imageRect];
        [path addClip];


        [image drawInRect:imageRect];
        UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();

        self.imageView.image = roundedImage;

但现在我还需要在它周围添加一个圆形边框。我是否需要一条新路径,或者我可以在上面的代码中添加一条路径吗?



Best Answer-推荐答案


在您的代码中添加以下三行(使用您想要的任何颜色和笔触宽度):

CGContextSetStrokeColorWithColor(ctx, [[UIColor greenColor] CGColor]);
[path setLineWidth:50.0f];
[path stroke];

所以就变成了:
UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0.0);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// Create the clipping path and add it
UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:imageRect];
[path addClip];
[image drawInRect:imageRect];

CGContextSetStrokeColorWithColor(ctx, [[UIColor greenColor] CGColor]);
[path setLineWidth:50.0f];
[path stroke];

UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

self.imageView.image = roundedImage;

关于objective-c - 如何用圆圈 mask 方形图像并在图像周围放置黑色边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13081356/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://jike.in/) Powered by Discuz! X3.4