@interface UIColor(RGBComponents)
- (CGFloat)redComponent;
- (CGFloat)greenComponent;
- (CGFloat)blueComponent;
- (CGFloat)alphaComponent;
- (CGFloat)whiteComponent;
- (void)getWhite:(CGFloat *)white alpha:(CGFloat *)alpha;
- (void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha;
@end
@implementation UIColor(RGBComponents)
- (CGFloat)redComponent
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
return components[0];
}
else
return 0.0;
}
- (CGFloat)greenComponent
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
return components[1];
}
else
return 0.0;
}
- (CGFloat)blueComponent
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
return components[2];
}
else
return 0.0;
}
- (CGFloat)alphaComponent
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 2)
{
const CGFloat *components = CGColorGetComponents(color);
return components[1];
}
else if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
return components[3];
}
else
return 0.0;
}
- (CGFloat)whiteComponent
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 2)
{
const CGFloat *components = CGColorGetComponents(color);
return components[0];
}
else
return 0.0;
}
- (void)getWhite:(CGFloat *)white alpha:(CGFloat *)alpha
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 2)
{
const CGFloat *components = CGColorGetComponents(color);
*white = components[0];
*alpha = components[1];
}
}
- (void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
{
CGColorRef color = self.CGColor;
NSInteger numComponents = CGColorGetNumberOfComponents(color);
if (numComponents == 4)
{
const CGFloat *components = CGColorGetComponents(color);
*red = components[0];
*green = components[1];
*blue = components[2];
*alpha = components[3];
}
}
@end
No comments:
Post a Comment