Swiftで単色のUIImageを生成する
本日はSwiftの小ネタです👷♀️
結論
下記のようにして、単色のUIImage
を取得することができます。UIGraphicsBeginImageContext()
は、GraphicsContext
を作成してスタックにプッシュします。次に、プッシュされたコンテキストをUIGraphicsGetCurrentContext()
で取得して、色を設定します。最後にUIGraphicsGetImageFromCurrentImageContext()
で、設定したコンテキストをUIImage
で受け取り、作成したコンテキストをUIGraphicsEndImageContext
でポップしています🏃🏻♂️
func colorImage(color: UIColor, size: CGSize = CGSize(width: 100, height: 100)) -> UIImage? { UIGraphicsBeginImageContext(size) let rect = CGRect(origin: CGPoint.zero, size: size) let context = UIGraphicsGetCurrentContext() context?.setFillColor(color.cgColor) context?.fill(rect) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return image }
てな感じで本日も以上となります🍺
参考
- https://qiita.com/yosshi4486/items/127fcb6b63dc0cd6f84a
- https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html