iTunes style color fetcher for UIImage
and NSImage
. It fetches the most dominant and prominent colors.
Copy UIImageColors.swift into your project.
Add UIImageColors to your Podfile
:
pod 'UIImageColors'
Add UIImageColors to your Cartfile
:
github "jathu/UIImageColors"
Asynchronous example:
let image = UIImage(named: "yeezus.png")
image.getColors { colors in
backgroundView.backgroundColor = colors.background
mainLabel.textColor = colors.primary
secondaryLabel.textColor = colors.secondary
detailLabel.textColor = colors.detail
}
Synchronous example:
let colors = UIImage(named: "yeezus.png").getColors()
backgroundView.backgroundColor = colors.background
mainLabel.textColor = colors.primary
secondaryLabel.textColor = colors.secondary
detailLabel.textColor = colors.detail
getColors() -> UIImageColors?
getColors(quality: ImageColorsQuality) -> UIImageColors?
getColors(_ completion: (UIImageColors?) -> Void) -> Void
getColors(quality: UIImageColorsQuality, _ completion: (UIImageColors?) -> Void) -> Void
UIImageColors
is struct that contains four different UIColor
(or NSColor
on macOS) variables.
public struct UIImageColors {
public var background: UIColor!
public var primary: UIColor!
public var secondary: UIColor!
public var detail: UIColor!
}
UIImageColorsQuality
is a enum with four different qualities. The qualities refer to how much the original image is scaled down. Lowest
implies smaller size and faster performance at the cost of quality colors. High
implies larger size with slower performance with good colors. Highest
implies no downscaling and very good colors, but it is very slow.
The default is set to high
.
public enum UIImageColorsQuality: CGFloat {
case lowest = 50 // 50px
case low = 100 // 100px
case high = 250 // 250px
case highest = 0 // No scale
}
The license is provided in the project folder. This is based on Panic's OS X ColorArt.
June 2015 - Toronto