単色で塗りつぶした UIImage を生成する

環境: Swift2.1

指定した UIColor の単色で塗りつぶした UIImage を生成したい。
UIImage の extension として実装した。

import UIKit

extension UIImage {
    
    static func image(color color: UIColor, size: CGSize) -> UIImage {
        UIGraphicsBeginImageContext(size)
        let context = UIGraphicsGetCurrentContext()
        CGContextSetFillColorWithColor(context, color.CGColor)
        CGContextFillRect(context, CGRect(origin: CGPointZero, size: size))
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return image
    }
}

使用時

let greenImage = UIImage.image(color: UIColor.greenColor(), size: CGSize(width: 50, height: 50))

※追記

Swift3

extension UIImage {
    
    static func image(color: UIColor, size: CGSize) -> UIImage {
        UIGraphicsBeginImageContextWithOptions(size, false, 0.0)
        let context = UIGraphicsGetCurrentContext()!
        context.setFillColor(color.cgColor)
        context.fill(CGRect(origin: .zero, size: size))
        let image = UIGraphicsGetImageFromCurrentImageContext()!
        UIGraphicsEndImageContext()
        return image
    }
}

使用時

let greenImage = UIImage.image(color: .green, size: CGSize(width: 50, height: 50))