// 获取图片的主题色
public extension UIImage {
func subjectColor(_ completion: @escaping (_ color: UIColor?) -> Void) {
DispatchQueue.global().async {
// 获取不到cgImage时
if self.cgImage == nil {
DispatchQueue.main.async {
return completion(nil)
}
}
// 先缩小图片
let bitmapInfo = CGBitmapInfo(rawValue: 0).rawValue | CGImageAlphaInfo.premultipliedLast.rawValue
// 不要压缩太小,不然误差会太大
let thumbSize = CGSize(width: 40, height: 40)
let colorSpace = CGColorSpaceCreateDeviceRGB()
guard let context = CGContext(data: nil, width: Int(thumbSize.width), height: Int(thumbSize.height), bitsPerComponent: 8, bytesPerRow: Int(thumbSize.width