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

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

相关推荐
初级代码游戏12 小时前
iOS开发 Swift 速记1:变量和基本数据类型
开发语言·ios·swift
for_ever_love__13 小时前
iOS:网络请求再学习
网络·学习·ios·objective-c
2501_9159214318 小时前
SwiftUI开发框架入门指南:从基础到实战
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
2501_9160074720 小时前
Python实现HTTPS爬虫的完整指南:使用requests、BeautifulSoup、Selenium和Scrapy
爬虫·python·ios·小程序·https·uni-app·iphone
LDyun_21 小时前
云手机低延迟怎么实现的?为什么云手机能够 7×24 小时在线?
ios·智能手机·安卓·玩游戏
for_ever_love__21 小时前
iOS: 网络请求第三方库的使用: AFNetworking
网络·学习·ios·objective-c·cocoa·xcode
李白你好21 小时前
强大的 Frida 重打包工具,用于 iOS 和 Android。轻松修改 Frida 特征
android·ios
zhao1zhihui2 天前
iOS Bug 定位实战:从断点、LLDB 到 Xcode 与 Instruments
ios·xcode
zhao1zhihui2 天前
Objective-C Runtime:从消息派发到安全 Hook
ios
GitLqr2 天前
Flutter FocusNode 实战指南:玩转键盘焦点与用户输入体验
android·flutter·ios