TempTrack-iOS/TempTrack/Extensions/Color+Extensions.swift

25 lines
771 B
Swift
Raw Normal View History

import Foundation
import SwiftUI
extension Color {
func blend(to other: Color, intensity: CGFloat = 0.5) -> Color {
Color(UIColor(self).blend(to: UIColor(other), intensity: intensity))
}
}
extension UIColor {
func blend(to other: UIColor, intensity: CGFloat = 0.5) -> UIColor {
let l2 = max(0.0, min(1.0, intensity))
let l1 = 1 - l2
var (r1, g1, b1, a1): (CGFloat, CGFloat, CGFloat, CGFloat) = (0, 0, 0, 0)
var (r2, g2, b2, a2): (CGFloat, CGFloat, CGFloat, CGFloat) = (0, 0, 0, 0)
getRed(&r1, green: &g1, blue: &b1, alpha: &a1)
other.getRed(&r2, green: &g2, blue: &b2, alpha: &a2)
return UIColor(red: l1*r1 + l2*r2, green: l1*g1 + l2*g2, blue: l1*b1 + l2*b2, alpha: l1*a1 + l2*a2)
}
}