// // StringExtensions.swift // lottie-swift // // Created by Brandon Withrow on 1/25/19. // import CoreGraphics import Foundation extension String { var cgColor: CGColor { let (red, green, blue) = hexColorComponents() return .rgb(red, green, blue) } func hexColorComponents() -> (red: CGFloat, green: CGFloat, blue: CGFloat) { var cString: String = trimmingCharacters(in: .whitespacesAndNewlines).uppercased() if cString.hasPrefix("#") { cString.remove(at: cString.startIndex) } if (cString.count) != 6 { return (red: 0, green: 0, blue: 0) } var rgbValue: UInt64 = 0 Scanner(string: cString).scanHexInt64(&rgbValue) return ( red: CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0, green: CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0, blue: CGFloat(rgbValue & 0x0000FF) / 255.0) } }