返回一张图片的主色调
来源:互联网 发布:seo效果明显吗 编辑:程序博客网 时间:2024/05/23 01:17
#import <UIKit/UIKit.h>@interface UIColor (YKD)/** * 返回一张图片的主色调 */+ (UIColor *)mostColorWithImage:(UIImage *)image;@end
//// UIColor+YKD.m#import "UIColor+YKD.h"@implementation UIColor (YKD)+ (UIColor *)mostColorWithImage:(UIImage *)image{ // 1.先把图片缩小,加快计算速度,但越小结果误差可能越大 CGSize thumbSize = CGSizeMake(50, 50); CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); CGContextRef context = CGBitmapContextCreate(NULL, thumbSize.width, thumbSize.height, 8, thumbSize.width*4, colorSpace, kCGImageAlphaPremultipliedLast); CGRect drawRect = CGRectMake(0, 0, thumbSize.width, thumbSize.height); CGContextDrawImage(context, drawRect, image.CGImage); CGColorSpaceRelease(colorSpace); // 2.取每个点的像素值 unsigned char *data = CGBitmapContextGetData(context); if (data == NULL) { return nil; } NSCountedSet *cls = [NSCountedSet setWithCapacity:thumbSize.width*thumbSize.height]; for (int x=0; x<thumbSize.width; x++) { for (int y=0; y<thumbSize.height; y++) { int offset = 4 * (x*y); int red = data[offset]; int green = data[offset +1]; int blue = data[offset+2]; int alpha = data[offset+3]; NSArray *clr=@[@(red),@(green),@(blue),@(alpha)]; [cls addObject:clr]; } } CGContextRelease(context); // 3.找到出现次数最多的那个颜色 NSEnumerator *enumerator = [cls objectEnumerator]; NSArray *curColor = nil; NSArray *MaxColor=nil; NSUInteger MaxCount=0; while ( (curColor = [enumerator nextObject]) != nil ) { NSUInteger tmpCount = [cls countForObject:curColor]; if ( tmpCount < MaxCount ) continue; MaxCount=tmpCount; MaxColor=curColor; } // 4.返回 return [UIColor colorWithRed:([MaxColor[0] intValue]/255.0f) green:([MaxColor[1] intValue]/255.0f) blue:([MaxColor[2] intValue]/255.0f) alpha:([MaxColor[3] intValue]/255.0f)]; }@end
0 0
- 返回一张图片的主色调
- 获取图片的主色调-java
- PHP 获取图片的主色调
- 获取图片主色调
- 返回一张自由拉伸的图片
- 【PHP】识别图片主色调
- iOS开发之获取图片的主色调
- iOS 获取图片的主体颜色(主色调)
- ios 给出一张图片,返回一个指定大小的图片
- iOS 返回一张可以随意拉伸不变形的图片
- 返回一张可以随意拉伸不变形的图片
- 修改图片的色调,饱和度,亮度
- KMean clustering算法获取图片主色调
- KMean clustering算法获取图片主色调
- php使用Imagick获取图片主色调
- [代码分享]UIImage:获取图片主色调
- iOS代码获取图片主色调
- Android使用Palette获取图片主色调
- 8款设计师常用漂亮的HTML CSS表格样式
- Java面试题之一对调两个数
- git完整教程
- java 单例模式,线程安全
- Caffe安装问题汇总
- 返回一张图片的主色调
- 背包问题先记录一下
- 4415: [Shoi2013]发牌|线段树|并查集
- pixhawk自学笔记之Mixer学习
- //全排列问题的详细解答
- linux yum命令详解(转)
- 统计某个字符串中的标点符号数(c++11)
- 关于SAP的用户出口
- linux 小命令收集