From 7dc63795c27be4f94ada38f12232a05d0ffbf60d Mon Sep 17 00:00:00 2001 From: Guillaume BITAUDEAU Date: Mon, 31 Jul 2017 17:35:21 +0200 Subject: [PATCH 1/3] Add methods to make images using a DynamicGradient --- .../project.pbxproj | 4 + Sources/CGFloat.swift | 29 ++++ Sources/DynamicColor.swift | 11 ++ Sources/DynamicGradient.swift | 148 ++++++++++++++++++ 4 files changed, 192 insertions(+) create mode 100644 Sources/CGFloat.swift diff --git a/Examples/DynamicColorExample.xcodeproj/project.pbxproj b/Examples/DynamicColorExample.xcodeproj/project.pbxproj index 2005625..5201d4b 100644 --- a/Examples/DynamicColorExample.xcodeproj/project.pbxproj +++ b/Examples/DynamicColorExample.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + C56086B51F2F7C300085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; CE1BD0811DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; CE1BD0821DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; CE1BD0831DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; @@ -204,6 +205,7 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + C56086B41F2F7C300085F569 /* CGFloat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGFloat.swift; sourceTree = ""; }; CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContrastDisplayContext.swift; sourceTree = ""; }; CE4E1EFB1D818AB100D2AC35 /* DynamicGradient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicGradient.swift; sourceTree = ""; }; CE4E1F041D819AEC00D2AC35 /* DynamicColorSpace.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicColorSpace.swift; sourceTree = ""; }; @@ -426,6 +428,7 @@ CE4E1EFB1D818AB100D2AC35 /* DynamicGradient.swift */, CEF85A241C84EA5B00DD1A49 /* HSL.swift */, CE5D647A1D35074B005DEE4E /* Utils.swift */, + C56086B41F2F7C300085F569 /* CGFloat.swift */, ); name = Sources; path = ../Sources; @@ -921,6 +924,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C56086B51F2F7C300085F569 /* CGFloat.swift in Sources */, CE5D64AD1D381782005DEE4E /* Array.swift in Sources */, CE4E1F111D81A6D900D2AC35 /* DynamicColor+HSB.swift in Sources */, CE4E1F0B1D819C2E00D2AC35 /* DynamicColor+Mixing.swift in Sources */, diff --git a/Sources/CGFloat.swift b/Sources/CGFloat.swift new file mode 100644 index 0000000..cd5c38f --- /dev/null +++ b/Sources/CGFloat.swift @@ -0,0 +1,29 @@ +// +// CGFloat.swift +// DynamicColorExample +// +// Created by Guillaume BITAUDEAU on 31/07/2017. +// Copyright © 2017 Yannick LORIOT. All rights reserved. +// + +import Foundation + + +/** + Convenient extension for working with radiant angles DynamicGradient. + */ +public extension CGFloat { + /** + Normalize a angle in radian between [-CGFloat.pi, CGFloat.pi] + */ + public func normalizeAngle() -> CGFloat { + let result = self.truncatingRemainder(dividingBy: 2.0 * CGFloat.pi) + if result < -CGFloat.pi { + return result + 2.0 * CGFloat.pi + } else if result > CGFloat.pi { + return result - 2.0 * CGFloat.pi + } + + return result + } +} diff --git a/Sources/DynamicColor.swift b/Sources/DynamicColor.swift index 487ce7e..8e941f4 100644 --- a/Sources/DynamicColor.swift +++ b/Sources/DynamicColor.swift @@ -208,4 +208,15 @@ public extension DynamicColor { public func isContrasting(with otherColor: DynamicColor, inContext context: ContrastDisplayContext = .standard) -> Bool { return self.contrastRatio(with: otherColor) > context.minimumContrastRatio } + + /** + Return a boolean value which indicates if the current color is opaque. + + This is a shortcut for "color.alphaComponent == 1.0" + + - returns: true if this color is opaque, false otherwise + */ + public var isOpaque: Bool { + return self.alphaComponent == 1.0 + } } diff --git a/Sources/DynamicGradient.swift b/Sources/DynamicGradient.swift index f6f6d63..421396b 100644 --- a/Sources/DynamicGradient.swift +++ b/Sources/DynamicGradient.swift @@ -102,4 +102,152 @@ final public class DynamicGradient { return color } + + + /** + Return a boolean value which indicates if the current gradient is opaque, which means that all colors of this gradient are opaque. + + - returns: true if this gradient is opaque, false otherwise + */ + public var isOpaque: Bool { + for color in self.colors { + if !color.isOpaque { + return false + } + } + return true + } + + /** + Create a image using this gradient as a linear gradient. + + - parameter size: The size in point of the resulting image. The number of pixel depends of the scale factor of the device’s main screen. + - parameter startPoint: The start point corresponds to the first stop of the gradient. The point is defined in the unit coordinate space and is then mapped to the image’s bounds rectangle when drawn. Indicates (0.0,0.0) for top left and (1.0,1.0) for bottom right. + - parameter endPoint: The end point corresponds to the last stop of the gradient. The point is defined in the unit coordinate space and is then mapped to the image’s bounds rectangle when drawn. Indicates (0.0,0.0) for top left and (1.0,1.0) for bottom right. + - parameter nbSteps: The number of step use to mix color using given colorspace. Use default value to use an automatic number of steps. In colorspace other than rgb, bigger numbers can give more accurate results. + - Parameter colorspace: The color space used to mix the colors. By default it uses the RBG color space. + - returns: the created UIImage containing the gradient + */ + func linearImage(withSize size:CGSize, startPoint:CGPoint, endPoint:CGPoint, numberOfSteps nbSteps:Int = 0, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { + + let finalNbSteps:Int + if nbSteps == 0 { + if colorspace == .rgb { + //let CAGradientLayer do the job! + finalNbSteps = colors.count + } else { + //arbitrary use the size to compute a not too bad nbSteps + finalNbSteps = Int(ceil(sqrt(size.width * size.height))) + } + } else { + finalNbSteps = nbSteps + } + + guard finalNbSteps > 1 else { + return nil + } + + let convertedColors:[CGColor] = (0.. CGColor in + let color = self.pickColorAt(scale: CGFloat (i)/CGFloat (finalNbSteps - 1), inColorSpace: colorspace) + return color.cgColor + } + + let gradientLayer = CAGradientLayer() + gradientLayer.frame = CGRect (origin: CGPoint.zero, size: size) + gradientLayer.colors = convertedColors + gradientLayer.startPoint = startPoint + gradientLayer.endPoint = endPoint + gradientLayer.contentsScale = UIScreen.main.scale + + UIGraphicsBeginImageContextWithOptions(size, self.isOpaque, 0) + + guard let context = UIGraphicsGetCurrentContext() else { + return nil + } + + gradientLayer.render (in: context) + + guard let image = UIGraphicsGetImageFromCurrentImageContext() else { + return nil + } + + UIGraphicsEndImageContext() + + return image + } + + + /** + Create a image using this gradient as a angular gradient. + Draw an arc using radius, startAngle, endAngle and clockwise. The center of the arcs is the center of the image. The arc is filled with "nbSteps" smaller arcs. Each smaller arc have a different interpolating color mix using the given colorspace. + + - parameter size: The size in point of the resulting image. The number of pixel depends of the scale factor of the device’s main screen. + - parameter radius: Specifies the radius of the circle used to define the arc. + - parameter startAngle: Specifies the starting angle of the arc (measured in radians). + - parameter endAngle: Specifies the end angle of the arc (measured in radians). + - parameter nbSteps: The number of step use to mix color using given colorspace. Bigger numbers can give more accurate results. + - Parameter colorspace: The color space used to mix the colors. By default it uses the RBG color space. + - returns: the created UIImage containing the gradient + */ + func angularImage(withSize size:CGSize, radius:CGFloat, startAngle:CGFloat, endAngle:CGFloat, clockwise:Bool, numberOfSteps nbSteps:Int = 360, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { + + guard nbSteps > 1 else { + return nil + } + + let center = CGPoint (x: size.width / 2.0, y: size.height / 2.0) + + let convertedColors:[CGColor] = (0.. CGColor in + let color = self.pickColorAt(scale: CGFloat (i)/CGFloat (nbSteps - 1), inColorSpace: colorspace) + return color.cgColor + } + + + let normalizedStart = startAngle.normalizeAngle() + let normalizedEnd = endAngle.normalizeAngle() + + var stepAngle:CGFloat + if clockwise { + stepAngle = normalizedEnd - normalizedStart + if normalizedEnd <= normalizedStart { + stepAngle = stepAngle + CGFloat.pi * 2.0 + } + } else { + stepAngle = normalizedEnd - normalizedStart + if normalizedEnd >= normalizedStart { + stepAngle = stepAngle - CGFloat.pi * 2.0 + } + } + stepAngle = stepAngle / CGFloat(nbSteps - 1) + + + UIGraphicsBeginImageContextWithOptions(size, self.isOpaque, 0) + + guard let context = UIGraphicsGetCurrentContext() else { + return nil + } + + for i in (1.. Date: Mon, 31 Jul 2017 19:12:24 +0200 Subject: [PATCH 2/3] Add tests for DynamicGradient to image methods --- .../project.pbxproj | 22 ++++++++ Examples/iOSTests/angularRainbowImage.png.ref | Bin 0 -> 62341 bytes Examples/iOSTests/linearRainbowImage.png.ref | Bin 0 -> 41452 bytes Sources/CGFloat.swift | 38 +++++++++++--- Sources/DynamicGradient.swift | 5 ++ Tests/DynamicGradientTests.swift | 49 ++++++++++++++++++ 6 files changed, 106 insertions(+), 8 deletions(-) create mode 100644 Examples/iOSTests/angularRainbowImage.png.ref create mode 100644 Examples/iOSTests/linearRainbowImage.png.ref diff --git a/Examples/DynamicColorExample.xcodeproj/project.pbxproj b/Examples/DynamicColorExample.xcodeproj/project.pbxproj index 5201d4b..86cc061 100644 --- a/Examples/DynamicColorExample.xcodeproj/project.pbxproj +++ b/Examples/DynamicColorExample.xcodeproj/project.pbxproj @@ -8,6 +8,15 @@ /* Begin PBXBuildFile section */ C56086B51F2F7C300085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086B81F2F866D0085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086B91F2F866D0085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086BA1F2F866E0085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086BB1F2F866E0085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086BC1F2F866F0085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086BD1F2F86700085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086BE1F2F86700085F569 /* CGFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C56086B41F2F7C300085F569 /* CGFloat.swift */; }; + C56086C51F2F962D0085F569 /* angularRainbowImage.png.ref in Resources */ = {isa = PBXBuildFile; fileRef = C56086C31F2F962D0085F569 /* angularRainbowImage.png.ref */; }; + C56086C61F2F962D0085F569 /* linearRainbowImage.png.ref in Resources */ = {isa = PBXBuildFile; fileRef = C56086C41F2F962D0085F569 /* linearRainbowImage.png.ref */; }; CE1BD0811DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; CE1BD0821DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; CE1BD0831DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */; }; @@ -206,6 +215,8 @@ /* Begin PBXFileReference section */ C56086B41F2F7C300085F569 /* CGFloat.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGFloat.swift; sourceTree = ""; }; + C56086C31F2F962D0085F569 /* angularRainbowImage.png.ref */ = {isa = PBXFileReference; lastKnownFileType = file; path = angularRainbowImage.png.ref; sourceTree = ""; }; + C56086C41F2F962D0085F569 /* linearRainbowImage.png.ref */ = {isa = PBXFileReference; lastKnownFileType = file; path = linearRainbowImage.png.ref; sourceTree = ""; }; CE1BD0801DEA01E500E11D77 /* ContrastDisplayContext.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContrastDisplayContext.swift; sourceTree = ""; }; CE4E1EFB1D818AB100D2AC35 /* DynamicGradient.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicGradient.swift; sourceTree = ""; }; CE4E1F041D819AEC00D2AC35 /* DynamicColorSpace.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DynamicColorSpace.swift; sourceTree = ""; }; @@ -353,6 +364,8 @@ CEA4D1331D95642900B12DAB /* iOSTests */ = { isa = PBXGroup; children = ( + C56086C31F2F962D0085F569 /* angularRainbowImage.png.ref */, + C56086C41F2F962D0085F569 /* linearRainbowImage.png.ref */, CEA4D1361D95642900B12DAB /* Info.plist */, ); path = iOSTests; @@ -772,6 +785,8 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + C56086C51F2F962D0085F569 /* angularRainbowImage.png.ref in Resources */, + C56086C61F2F962D0085F569 /* linearRainbowImage.png.ref in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -832,6 +847,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C56086B81F2F866D0085F569 /* CGFloat.swift in Sources */, CE8688911E2C165D00207CAC /* ContrastDisplayContext.swift in Sources */, CE8688991E2C165D00207CAC /* DynamicColor+XYZ.swift in Sources */, CE8688951E2C165D00207CAC /* DynamicColor+HSL.swift in Sources */, @@ -853,6 +869,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C56086B91F2F866D0085F569 /* CGFloat.swift in Sources */, CE8688B11E2C1AF700207CAC /* ContrastDisplayContext.swift in Sources */, CE8688B91E2C1AF700207CAC /* DynamicColor+XYZ.swift in Sources */, CE8688B51E2C1AF700207CAC /* DynamicColor+HSL.swift in Sources */, @@ -874,6 +891,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C56086BA1F2F866E0085F569 /* CGFloat.swift in Sources */, CE8688CC1E2C1B4800207CAC /* ContrastDisplayContext.swift in Sources */, CE8688D41E2C1B4800207CAC /* DynamicColor+XYZ.swift in Sources */, CE8688D01E2C1B4800207CAC /* DynamicColor+HSL.swift in Sources */, @@ -908,6 +926,7 @@ CE1BD0841DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */, CEA4D13B1D95643E00B12DAB /* DynamicColor.swift in Sources */, CEA4D1451D95643E00B12DAB /* HSL.swift in Sources */, + C56086BD1F2F86700085F569 /* CGFloat.swift in Sources */, CEA4D1411D95643E00B12DAB /* DynamicColor+RGBA.swift in Sources */, CEA4D13F1D95643E00B12DAB /* DynamicColor+Lab.swift in Sources */, CEA4D15B1D95647000B12DAB /* DynamicColor+XYZTests.swift in Sources */, @@ -959,6 +978,7 @@ CE1BD0851DEA01E500E11D77 /* ContrastDisplayContext.swift in Sources */, CEAF67911CA2D342008DC3A2 /* DynamicColor+RGBA.swift in Sources */, CE4E1F091D819AEC00D2AC35 /* DynamicColorSpace.swift in Sources */, + C56086BE1F2F86700085F569 /* CGFloat.swift in Sources */, CE4E1F001D818AB100D2AC35 /* DynamicGradient.swift in Sources */, CE4E1F0F1D819C2E00D2AC35 /* DynamicColor+Mixing.swift in Sources */, CEA4D1631D95647000B12DAB /* DynamicColor+XYZTests.swift in Sources */, @@ -989,6 +1009,7 @@ CE8B86571D2991F000C5A670 /* DynamicColor+XYZ.swift in Sources */, CE5D64AF1D381782005DEE4E /* Array.swift in Sources */, CEEB28D21BE27340001A74E8 /* AppDelegate.swift in Sources */, + C56086BC1F2F866F0085F569 /* CGFloat.swift in Sources */, CE4E1EFE1D818AB100D2AC35 /* DynamicGradient.swift in Sources */, CE4E1F131D81A6D900D2AC35 /* DynamicColor+HSB.swift in Sources */, CE4E1F0D1D819C2E00D2AC35 /* DynamicColor+Mixing.swift in Sources */, @@ -1014,6 +1035,7 @@ CE4E1F0C1D819C2E00D2AC35 /* DynamicColor+Mixing.swift in Sources */, CE8B86561D2991F000C5A670 /* DynamicColor+XYZ.swift in Sources */, CE4E1F061D819AEC00D2AC35 /* DynamicColorSpace.swift in Sources */, + C56086BB1F2F866E0085F569 /* CGFloat.swift in Sources */, CE5D64AE1D381782005DEE4E /* Array.swift in Sources */, CEFBDAE11B1CE38D000E6F30 /* AppDelegate.swift in Sources */, CEF02EEE1D2984CD00D810B9 /* DynamicColor+HSL.swift in Sources */, diff --git a/Examples/iOSTests/angularRainbowImage.png.ref b/Examples/iOSTests/angularRainbowImage.png.ref new file mode 100644 index 0000000000000000000000000000000000000000..12558e36ea8b7b74cb7a99402fa39a0257831bc2 GIT binary patch literal 62341 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 literal 0 HcmV?d00001 diff --git a/Examples/iOSTests/linearRainbowImage.png.ref b/Examples/iOSTests/linearRainbowImage.png.ref new file mode 100644 index 0000000000000000000000000000000000000000..1f25173c6ae501c76e041ad3f7ca7a20fcb02603 GIT binary patch literal 41452 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 Date: Thu, 3 Aug 2017 10:05:43 +0200 Subject: [PATCH 3/3] Change gradient image methods visibility --- Sources/DynamicGradient.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/DynamicGradient.swift b/Sources/DynamicGradient.swift index 096d6b5..eb15b38 100644 --- a/Sources/DynamicGradient.swift +++ b/Sources/DynamicGradient.swift @@ -131,7 +131,7 @@ final public class DynamicGradient { - Parameter colorspace: The color space used to mix the colors. By default it uses the RBG color space. - returns: the created UIImage containing the gradient */ - func linearImage(withSize size:CGSize, startPoint:CGPoint, endPoint:CGPoint, numberOfSteps nbSteps:Int = 0, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { + public func linearImage(withSize size:CGSize, startPoint:CGPoint, endPoint:CGPoint, numberOfSteps nbSteps:Int = 0, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { let finalNbSteps:Int if nbSteps == 0 { @@ -193,7 +193,7 @@ final public class DynamicGradient { - Parameter colorspace: The color space used to mix the colors. By default it uses the RBG color space. - returns: the created UIImage containing the gradient */ - func angularImage(withSize size:CGSize, radius:CGFloat, startAngle:CGFloat, endAngle:CGFloat, clockwise:Bool, numberOfSteps nbSteps:Int = 360, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { + public func angularImage(withSize size:CGSize, radius:CGFloat, startAngle:CGFloat, endAngle:CGFloat, clockwise:Bool, numberOfSteps nbSteps:Int = 360, inColorSpace colorspace: DynamicColorSpace = .rgb) -> UIImage? { guard nbSteps > 1 else { return nil