2
如何检测图像/凸轮上的主色并打印其名称?如何检测颜色并在iOS中打印其名称?
例如:在图像中,当我分析该图像时,可能会出现非常浅蓝色,浅蓝色,蓝色,深蓝色,因为我想知道主色是蓝色的,并且在屏幕上打印“蓝色”。如果我需要使用RGB,我认为我需要颜色范围吗?
ps:在图像上也可以有红色,黄色等,但我想检测主色。
如何检测图像/凸轮上的主色并打印其名称?如何检测颜色并在iOS中打印其名称?
例如:在图像中,当我分析该图像时,可能会出现非常浅蓝色,浅蓝色,蓝色,深蓝色,因为我想知道主色是蓝色的,并且在屏幕上打印“蓝色”。如果我需要使用RGB,我认为我需要颜色范围吗?
ps:在图像上也可以有红色,黄色等,但我想检测主色。
- (UIColor *)averageColor {
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
unsigned char rgba[4];
CGContextRef context = CGBitmapContextCreate(rgba, 1, 1, 8, 4, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
CGContextDrawImage(context, CGRectMake(0, 0, 1, 1), self.CGImage);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
if(rgba[3] > 0) {
CGFloat alpha = ((CGFloat)rgba[3])/255.0;
CGFloat multiplier = alpha/255.0;
return [UIColor colorWithRed:((CGFloat)rgba[0])*multiplier
green:((CGFloat)rgba[1])*multiplier
blue:((CGFloat)rgba[2])*multiplier
alpha:alpha];
}
else {
return [UIColor colorWithRed:((CGFloat)rgba[0])/255.0
green:((CGFloat)rgba[1])/255.0
blue:((CGFloat)rgba[2])/255.0
alpha:((CGFloat)rgba[3])/255.0];
}
}
从
Objective-c - Getting least used and most used color in a image
其是从http://www.bobbygeorgescu.com/2011/08/finding-average-color-of-uiimage/