-2
在我的應用程序中,我需要顯示圖像的前三種平均顏色(主要用於顏色)。我怎麼能得到這個?我試過下面的代碼來得到一個平均顏色,但我需要基於它的禮物水平的三種顏色。 ex。輸出樣本:
藍#0000FF 水族#00FFFF 灰色#808080如何獲得圖像的前三個平均顏色?
- (的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), given_Img.CGImage);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
UIColor *colorOfArtwork;
if(rgba[3]) {
NSLog(@"rgba[3]");
CGFloat alpha = ((CGFloat)rgba[3])/255.0;
CGFloat multiplier = alpha/255.0;
return colorOfArtwork = [UIColor colorWithRed:((CGFloat)rgba[0])*multiplier
green:((CGFloat)rgba[1])*multiplier
blue:((CGFloat)rgba[2])*multiplier
alpha:alpha];
}
else {
return colorOfArtwork = [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];
}
}
像紫色,黃色等等。 – Megan
把一些代碼,如果你已經嘗試了一些東西.. – parilogic
你是什麼意思的「根據其優先權」? –