Skip to content

Commit 0677082

Browse files
committed
Clamp color values
1 parent 3a49fba commit 0677082

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

Example/SettingExample/ContentView.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,10 @@ extension Color {
294294
let color = UIColor(self)
295295

296296
if color.getRed(&fRed, green: &fGreen, blue: &fBlue, alpha: &fAlpha) {
297+
fRed = fRed.clamped(to: 0 ... 1)
298+
fGreen = fGreen.clamped(to: 0 ... 1)
299+
fBlue = fBlue.clamped(to: 0 ... 1)
300+
297301
let iRed = UInt(fRed * 255.0)
298302
let iGreen = UInt(fGreen * 255.0)
299303
let iBlue = UInt(fBlue * 255.0)
@@ -309,6 +313,10 @@ extension Color {
309313
let color = NSColor(self)
310314

311315
color.getRed(&fRed, green: &fGreen, blue: &fBlue, alpha: &fAlpha)
316+
fRed = fRed.clamped(to: 0 ... 1)
317+
fGreen = fGreen.clamped(to: 0 ... 1)
318+
fBlue = fBlue.clamped(to: 0 ... 1)
319+
312320
let iRed = UInt(fRed * 255.0)
313321
let iGreen = UInt(fGreen * 255.0)
314322
let iBlue = UInt(fBlue * 255.0)
@@ -320,3 +328,10 @@ extension Color {
320328
#endif
321329
}
322330
}
331+
332+
extension Comparable {
333+
/// used for the UIColor
334+
func clamped(to limits: ClosedRange<Self>) -> Self {
335+
return min(max(self, limits.lowerBound), limits.upperBound)
336+
}
337+
}

0 commit comments

Comments
 (0)