ios CCUIColor.m

objectivec 复制代码
//
//  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
objectivec 复制代码
//
//  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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

相关推荐
马拉萨的春天37 分钟前
iOS的动态库和静态库的差异区别以及静态库的好处
macos·ios·cocoa
肖老师xy42 分钟前
苹果(IOS)制作开发和发布证书
ios
马拉萨的春天2 小时前
探索Objective-C中的对象复制:深入理解copy和mutableCopy
开发语言·ios·objective-c
00后程序员张2 小时前
Fiddler使用教程,全面掌握Fiddler抓包工具的配置方法、代理设置与调试技巧(HTTPHTTPS全解析)
前端·测试工具·ios·小程序·fiddler·uni-app·webview
2501_916008892 小时前
HTTPS 下的 DDoS 防护与抓包分析实战,从检测到快速缓解的工程化打法
网络协议·ios·小程序·https·uni-app·iphone·ddos
2501_915918412 小时前
App 使用 HTTPS 的工程化实战,从接入到真机排查的一线指南
android·ios·小程序·https·uni-app·iphone·webview
hookserver3 小时前
企业微信ipad协议接口优势
http·ios·微信·企业微信·ipad·企微
Digitally6 小时前
如何从iPhone提取照片:2025年的6种方法
ios·iphone
代码s贝多芬的音符14 小时前
ios android 小程序 蓝牙 CRC16_MODBUS
android·ios·小程序
非专业程序员Ping15 小时前
从0到1自定义文字排版引擎:原理篇
ios·swift·assembly·font