//
// CCUIColor.h
// CCFC
//
//
#import <Foundation/Foundation.h>
#define RGB_MAX_VALUE 255.0f
#define RGBA(r, g, b, a) \
[UIColor colorWithRed:(r)/RGB_MAX_VALUE \
green:(g)/RGB_MAX_VALUE \
blue:(b)/RGB_MAX_VALUE \
alpha:(a)]
#define HSBA(h, s, b, a) \
[UIColor colorWithHue:(h)/RGB_MAX_VALUE \
saturation:(s)/RGB_MAX_VALUE \
brightness:(b)/RGB_MAX_VALUE \
alpha:(a)]
#define COLOR_RED [UIColor colorWithRed:1.0f green:0 blue:0 alpha:1]
#define COLOR_GREEN [UIColor colorWithRed:0 green:1.0f blue:0 alpha:1]
#define COLOR_BLUE [UIColor colorWithRed:0 green:0 blue:1.0f alpha:1]
#define COLOR_BLACK [UIColor colorWithRed:0 green:0 blue:0 alpha:1]
#define COLOR_WHITE [UIColor colorWithRed:1.0f green:1.0f blue:1.0f alpha:1]
// 透明颜色
#define COLOR_CLEAR [UIColor clearColor]
@interface UIColor(cc)
// 获取UIColor的RGBA的值
- (void)getRGBAValue:(CGFloat *)red
green:(CGFloat *)green
blue:(CGFloat *)blue
alpha:(CGFloat *)alpha;
- (CGFloat)getRedValue;
- (CGFloat)getGreenValue;
- (CGFloat)getBlueValue;
- (CGFloat)getAlphaValue;
// 由RGB的值获得CGColorRef指针
+ (CGColorRef)createCGColorRefByRGB:(CGFloat)red
green:(CGFloat)green
blue:(CGFloat)blue
alpha:(CGFloat)alpha;
// print the RGBA info of the UIColor
- (void)printRGBA;
@end
//
// CCUIColor.m
// CCFC
//
//
#import "CCUIColor.h"
@implementation UIColor(cc)
// 获取UIColor的RGBA的值
- (void)getRGBAValue:(CGFloat *)red
green:(CGFloat *)green
blue:(CGFloat *)blue
alpha:(CGFloat *)alpha
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
if(red)
*red = tmComponents[0];
if(green)
*green = tmComponents[1];
if(blue)
*blue = tmComponents[2];
if(alpha)
*alpha = tmComponents[3];
}
- (CGFloat)getRedValue
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
return tmComponents[0];
}
- (CGFloat)getGreenValue
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
return tmComponents[1];
}
- (CGFloat)getBlueValue
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
return tmComponents[2];
}
- (CGFloat)getAlphaValue
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
return tmComponents[3];
}
// 由RGB的值获得CGColorRef指针
// you should release the returnValue by your hand.
+ (CGColorRef)createCGColorRefByRGB:(CGFloat)red
green:(CGFloat)green
blue:(CGFloat)blue
alpha:(CGFloat)alpha
{
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
const CGFloat rgbColor[] = {(float)red / 255, (float)green / 255 , (float) blue / 255, (float) alpha / 255};
CGColorRef color = CGColorCreate(rgb, rgbColor);
CGColorSpaceRelease(rgb);
return color;
}
// print the RGBA info of the UIColor
- (void)printRGBA
{
CGColorRef colorRef = [self CGColor];
const CGFloat *tmComponents = CGColorGetComponents(colorRef);
NSLog(@"%@ R:%f, G:%f, B:%f, A:%f",
self, tmComponents[0], tmComponents[1], tmComponents[2], tmComponents[3]);
}
@end
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
欢迎关注。助您在编程路上越走越好!