NuvioStreaming/ios/LiveActivity/Color+hex.swift
2026-01-24 13:41:36 +05:30

37 lines
938 B
Swift

import SwiftUI
extension Color {
init(hex: String) {
var cString: String = hex.trimmingCharacters(in: .whitespacesAndNewlines).uppercased()
if cString.hasPrefix("#") {
cString.remove(at: cString.startIndex)
}
if (cString.count) != 6, (cString.count) != 8 {
self.init(.white)
return
}
var rgbValue: UInt64 = 0
Scanner(string: cString).scanHexInt64(&rgbValue)
if (cString.count) == 8 {
self.init(
.sRGB,
red: Double((rgbValue >> 24) & 0xFF) / 255,
green: Double((rgbValue >> 16) & 0xFF) / 255,
blue: Double((rgbValue >> 08) & 0xFF) / 255,
opacity: Double((rgbValue >> 00) & 0xFF) / 255
)
} else {
self.init(
.sRGB,
red: Double((rgbValue >> 16) & 0xFF) / 255,
green: Double((rgbValue >> 08) & 0xFF) / 255,
blue: Double((rgbValue >> 00) & 0xFF) / 255,
opacity: 1
)
}
}
}