我找到了UIImage
的类别,用于替换颜色here
问题是方法签名接收无符号整数颜色代码:
- (UIImage *)imageByRemovingColorsWithMinColor:(uint)minColor maxColor:(uint)maxColor
如何从UIColor
获得正确的无符号整数值?
我实际上想用紫色代替黑色。
答案 0 :(得分:7)
如果您查看过这些来源,您会发现他们使用这个无符号整数值作为十六进制颜色代码,其中
colorcode = ((unsigned)(red * 255) << 16) + ((unsigned)(green * 255) << 8) + ((unsigned)(blue * 255) << 0)
所以你可以使用这样的方法从UIColor对象获得这样的十六进制值:
@implementation UIColor (Hex)
- (NSUInteger)colorCode
{
float red, green, blue;
if ([self getRed:&red green:&green blue:&blue alpha:NULL])
{
NSUInteger redInt = (NSUInteger)(red * 255 + 0.5);
NSUInteger greenInt = (NSUInteger)(green * 255 + 0.5);
NSUInteger blueInt = (NSUInteger)(blue * 255 + 0.5);
return (redInt << 16) | (greenInt << 8) | blueInt;
}
return 0;
}
@end
然后使用它:
NSUInteger hexPurple = [[UIColor purpleColor] colorCode];