@@ -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