2014-04-03 39 views
2

如何檢測圖像/凸輪上的主色並打印其名稱?如何檢測顏色並在iOS中打印其名稱?

例如:在圖像中,當我分析該圖像時,可能會出現非常淺藍色,淺藍色,藍色,深藍色,因爲我想知道主色是藍色的,並且在屏幕上打印「藍色」。如果我需要使用RGB,我認爲我需要顏色範圍嗎?

ps:在圖像上也可以有紅色,黃色等,但我想檢測主色。

回答

1
- (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/