iOS 获取图片中的颜色-最有用最高效的方法

废话不多说,直接上代码。

创建一个UIImage的Category

#import <UIKit/UIKit.h>

@interface UIImage (ColorWithPicture)

- (UIColor*)colorWithPicture:(CGPoint)point;
@end
#import "UIImage+ColorWithPicture.h"
@implementation UIImage (ColorWithPicture)


- (UIColor *)colorWithPicture:(CGPoint)point {
    

    CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(self.CGImage));
    const UInt8 *data = CFDataGetBytePtr(pixelData);
    
    NSUInteger width = self.size.width;
    int pixelInfo = ((width * point.y) + point.x) * 4;
    
    CGFloat red   = (CGFloat)data[pixelInfo] / 255.0f;
    CGFloat green = (CGFloat)data[pixelInfo + 1] / 255.0f;
    CGFloat blue  = (CGFloat)data[pixelInfo + 2] / 255.0f;
    CGFloat alpha = (CGFloat)data[pixelInfo + 3] / 255.0f;
    
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
@end

使用方法

UIImage *image = [UIImage imageNamed:@"image.png"];
self.view.backgroundColor = [image colorWithPicture:CGPointMake(1.0f, 1.0f)];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,195评论 4 61
  • 故乡 文/那年沐子 故乡是一方天空, 清风吹拂,四季东奔西跑。 故乡是一朵白云, 雨淋雪飘,大雁北飞南归。 故乡是...
    那年沐子阅读 1,267评论 0 1
  • 先说说饭圈新人为什么要成为饭圈红人。因为当了饭圈红人,勾搭高级粉就容易多了啊,如此一来,得到爱豆行程消息、私密八卦...
    猛马X阅读 8,884评论 1 1
  • 7月23日,周日,早上好! ①怎样使内容或者一句话看起来丰富? ②关键词:修饰词和换 ③个人总结:我写东西会用很多...
    佟小月阅读 981评论 0 0
  • 一场比赛告别后的梦境 我看不见曾经的微笑 你走在过去的承诺里 我把自己置于黑色长裤下 你们牵手路过的身影 六月的天...
    熊本于宴阅读 1,157评论 0 0