首页 > 解决方案 > 使用 UIGraphicsImageRenderer 创建圆形图像

问题描述

我有这个扩展,它创建了一个方形 UIImage。

extension UIColor {
    func image(_ size: CGSize = CGSize(width: 1, height: 1)) -> UIImage {
        return UIGraphicsImageRenderer(size: size).image { rendererContext in
        self.setFill()
        rendererContext.fill(CGRect(origin: .zero, size: size))
        }
    }
}

如何返回带圆圈的 UIImage?

标签: swiftxcodeuigraphicscontext

解决方案


查看 CGContext 方法有一个fillEllipse(in:). 因此,我们检索并调用它而不是fill()(使其填充所有图像)。cgContextrendererContextfillEllipse(in:)

func circleImage(_ size: CGSize = CGSize(width: 1, height: 1)) -> UIImage {
    return UIGraphicsImageRenderer(size: size).image(actions: { rendererContext in
        self.setFill()
        rendererContext.cgContext.fillEllipse(in: CGRect(origin: .zero, size: size))
    })
}

在游乐场:

在此处输入图像描述


推荐阅读