iOS 获取UIColor对象的lab字符串值。

- (NSString *)getCIELABString:(UIColor *)originColor  {

// Method provided by the Colours class extension

NSDictionary *cieDict = [self
getCIE_LabArrayByColor:originColor ];

return [NSString
stringWithFormat:@"(%0.2f, %0.2f, %0.2f)",

[cieDict[@"CIE_L"]
floatValue],

[cieDict[@"CIE_A"]
floatValue],

[cieDict[@"CIE_B"]
floatValue]];

}

#pragma mark - LAB from Color

- (NSDictionary *)getCIE_LabArrayByColor:(UIColor *)originColor {

// Convert Color to XYZ format first

NSDictionary *rgba = [self
getRGBDictionaryByColor:originColor];

CGFloat R = [rgba[@"R"]
floatValue];

CGFloat G = [rgba[@"G"]
floatValue];

CGFloat B = [rgba[@"B"]
floatValue];

// Create deltaR block

void (^deltaRGB)(CGFloat *R);

deltaRGB = ^(CGFloat *r) {

*r = (*r >
0.04045) ? pow((*r +
0.055)/1.055,
2.40) : (*r/12.92);

};

deltaRGB(&R);

deltaRGB(&G);

deltaRGB(&B);

CGFloat X = R*41.24 + G*35.76 + B*18.05;

CGFloat Y = R*21.26 + G*71.52 + B*7.22;

CGFloat Z = R*1.93 + G*11.92 + B*95.05;

// Convert XYZ to L*a*b*

X = X/95.047;

Y = Y/100.000;

Z = Z/108.883;

// Create deltaF block

void (^deltaF)(CGFloat *f);

deltaF = ^(CGFloat *f){

*f = (*f >
pow((6.0/29.0),
3.0)) ? pow(*f,
1.0/3.0) : (1/3)*pow((29.0/6.0),
2.0) * *f + 4/29.0;

};

deltaF(&X);

deltaF(&Y);

deltaF(&Z);

NSNumber *L = @(116*Y -
16);

NSNumber *a = @(500 * (X - Y));

NSNumber *b = @(200 * (Y - Z));

return
@{@"CIE_L":L,

@"CIE_A":a,

@"CIE_B":b,

@"CIE_ALPHA":rgba[@"A"]};

}

/**

*  获取UIColor对象的RGB值。

*

*  @return 包含rgb值的字典对象。

*/

- (NSDictionary *)getRGBDictionaryByColor:(UIColor *)originColor

{

CGFloat r=0,g=0,b=0,a=0;

if ([self respondsToSelector:@selector(getRed:green:blue:alpha:)])
{

[originColor getRed:&r green:&g blue:&b alpha:&a];

}

else {

const CGFloat *components = CGColorGetComponents(originColor.CGColor);

r = components[0];

g = components[1];

b = components[2];

a = components[3];

}

return @{@"R":@(r),

@"G":@(g),

@"B":@(b),

@"A":@(a)};

}

时间: 2024-10-10 07:21:36

iOS 获取UIColor对象的lab字符串值。的相关文章

iOS 获取UIColor对象的HSB字符串值。

/** *  获取UIColor对象的HSB字符串值. * */ - (NSString *)getHSBStringByColor:(UIColor *)originColor { // Method provided by the Colours class extension NSDictionary *hsbDict = [self getHSBAValueByColor:originColor]; return [NSString stringWithFormat:@"(%0.2f,

iOS获取UIColor对象的CMYK值

/** * 获取UIColor对象的CMYK字符串值. */ - (NSString *)getCMYKStringValueByColor:(UIColor *)originColor{ // Method provided by the Colours class extension NSDictionary *cmykDict = [self getCMYKValueByColor:originColor]; return [NSString stringWithFormat:@"(%0.

iOS 获取UIColor对象的rgb值。

/** *  获取UIColor对象的rgb值. * *  @param originColor * *  @return */ - (NSString *)getHexStringByColor:(UIColor *)originColor { NSDictionary *colorDic = [self getRGBDictionaryByColor:originColor]; int r = [colorDic[@"R"] floatValue] * 255; int g = [

iOS获取UIColor对象的RGB值

- (NSDictionary *)getRGBDictionaryByColor:(UIColor *)originColor { CGFloat r=0,g=0,b=0,a=0; if ([self respondsToSelector:@selector(getRed:green:blue:alpha:)]) { [originColor getRed:&r green:&g blue:&b alpha:&a]; } else { const CGFloat *com

有两个地方,用到了javabean对象和属性字符串值之间的转换

1.有两个地方,用到了javabean对象和属性字符串值之间的转换 2.一个是接入层spring mvc,将json字符串参数转换为javaBean.通过@RequestBody javaBean方式 3.另一个是,mybatis中javeBean对象与数据库字段值之间的转换. 在sql语句的insert/update/delete语句传入javaBean对象,用#{}转换为具体的属性 在sql语句的select中,将数据库中的字段转换为javaBean的属性值. 4.只要发生javaBean的

通过反射获取某个对象下的属性值,或通过父类获取

import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.*; /** * 通过反射获取某个对象下的属性值,或通过父类获取 * User: wangyongfei * Date

java 利用反射获取类对象中List的值

Field[] fields = Object.getClass().getDeclaredFields();//Object是已经被赋值的对象实例 for (Field field : fields) {if (!field.isAccessible()) { field.setAccessible(true); } if (List.class.isAssignableFrom(field.getType())) { Type t = field.getGenericType(); if (

js获取dom对象style样式的值

js获取到的dom对象的style通常是没有值得,因为我们都写在外部文件中,从慕课网上见到讲师封装的一个方法,挺不错.特此记录下来. 1 function getStyle(obj,attr){ 2 if(obj.currentStyle){//兼容IE 3 return obj.currentStyle[attr]; 4 }else{ 5 return getComputedStyle(obj,false)[attr]; 6 } 7 }

IOS 获取网络图像尺寸 更改 图像色彩值 什么一套方法灰色

直接在代码 头文件 // 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色 +(UIImage*)imageWithImage:(UIImage*)image grayLevelType:(UIImageGrayLevelType)type; //色值 变暗多少 0.0 - 1.0 +(UIImage*)imageWithImage:(UIImage*)image darkValue:(float)darkValue; /** 获取网络图片的Size, 先通过文件头来获取图片大小 假设失败