Skip to content

Instantly share code, notes, and snippets.

@emarashliev
Created January 20, 2016 17:24
Show Gist options
  • Select an option

  • Save emarashliev/135b415bce894eb3333f to your computer and use it in GitHub Desktop.

Select an option

Save emarashliev/135b415bce894eb3333f to your computer and use it in GitHub Desktop.
@implementation UIImage (AverageColor)
- (UIColor * _Nonnull)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];
}
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment