iOS开发:UIColor转成纯色图片(UIImage)

时间:2023-03-09 19:55:27
iOS开发:UIColor转成纯色图片(UIImage)

Objective-c 版本

UIKIT_EXTERN UIImage * __nullable UIColorAsImage(UIColor * __nonnull color, CGSize size) {

    CGRect rect = CGRectMake(0, 0, size.width, size.height);

    UIGraphicsBeginImageContextWithOptions(rect.size, NO, [UIScreen mainScreen].scale);

    CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context,color.CGColor);
CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext(); return image;
}

使用

// 复制上面代码放在任意头文件中,并引用该头文件,在需要的地方调用如下
UIImage *image = UIColorAsImage([UIColor redColor], CGSizeMake(200, 100));

Swift 版本

extension UIColor {

    func asImage(_ size: CGSize) -> UIImage? {

        var resultImage: UIImage? = nil
let rect = CGRect(x: 0, y: 0, width: size.width, height: size.height)
UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.main.scale) guard let context = UIGraphicsGetCurrentContext() else { return resultImage
} context.setFillColor(self.cgColor)
context.fill(rect)
resultImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext() return resultImage
}
}

使用

let colorImage = UIColor.black.asImage(CGSize(width: 100, height: 100));