我正在尝试获得在 uiimage 中突出的颜色,如果这是照片,我会获得红色:
我知道要获得平均颜色,我会使用下面的代码,但它会返回 nlack 或灰色作为平均颜色,我希望此代码获得红色。
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), artworkImageView.image.CGImage);
CGColorSpaceRelease(colorSpace);
CGContextRelease(context);
UIColor *colorOfArtwork;
if(rgba[3]) {
CGFloat alpha = ((CGFloat)rgba[3])/255.0;
CGFloat multiplier = alpha/255.0;
colorOfArtwork = [UIColor colorWithRed:((CGFloat)rgba[0])*multiplier
green:((CGFloat)rgba[1])*multiplier
blue:((CGFloat)rgba[2])*multiplier
alpha:alpha];
}
else {
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];
}