OStack程序员社区-中国程序员成长平台

标题: ios - 如何在 iOS 中检测颜色并打印其名称? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-12 21:12
标题: ios - 如何在 iOS 中检测颜色并打印其名称?

如何检测图像/摄像头上的主色并打印其名称?

例如:在图像中可能有非常浅的蓝色、浅蓝色、蓝色、深蓝色,只是因为该物体或图像上的闪电,当我分析我想要制作的图像时,我知道主色是蓝色,然后打印屏幕上的“蓝色”。如果我需要使用 RGB,我想我需要颜色范围,对吗?

ps:图像上也可以有红色、黄色等,但我想检测主色。



Best Answer-推荐答案


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

关于ios - 如何在 iOS 中检测颜色并打印其名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22838315/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4