-
Notifications
You must be signed in to change notification settings - Fork 0
/
UIColor+ColorModelsExtensions.h
118 lines (101 loc) · 6.16 KB
/
UIColor+ColorModelsExtensions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//
// UIColor+ColorModelsExtensions.h
//
// Created by Rudi Strahl on 2012-10-08.
//
// Based on: http://en.wikipedia.org/wiki/HSL_and_HSV
/*
The MIT License (MIT)
Copyright (C) 2012 Rudi Strahl
Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software
without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be included in all copies
or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#import <UIKit/UIKit.h>
@interface UIColor (ColorModelsExtensions)
/**
Converts an RGB int/hex value to a UIColor object.
@param hexColor An int/hex value containing color data in RGBA format.
@return A UIColor object based on the color value provided.
*/
+ (UIColor *)colorWithRGBHex:(int)hexColor;
/**
Converts an RGBA int/hex value to a UIColor object.
@param hexColor An int/hex value containing color data in RGBA format.
@return A UIColor object based on the color value provided.
*/
+ (UIColor *)colorWithRGBAHex:(int)hexColor;
/**
Converts a UIColor object to an RGBA int/hex value.
@param color The UIColor object to be converted.
@return An int/hex value containing color data in RGBA format.
*/
+ (int)hexFromColor:(UIColor *)color;
/**
Converts an RGB int/hex value to a RGB components.
@param hexColor An int/hex value containing color data in RGBA format.
@param On return, the red component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the green component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the blue component of the color object, specified as a value between 0.0 and 1.0.
*/
+ (void)convertHexColor:(int)hexColor toRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue;
/**
Converts RGB components to an RGB int/hex value.
@param red The red component of the color object, specified as a value between 0.0 and 1.0.
@param green The green component of the color object, specified as a value between 0.0 and 1.0.
@param blue The blue component of the color object, specified as a value between 0.0 and 1.0.
@param On return, an int/hex value containing color data in RGBA format.
*/
+ (void)convertRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue toHexColor:(int *)hexColor;
/**
Converts RGB components to HSV components.
@param red The red component of the color object, specified as a value between 0.0 and 1.0.
@param green The green component of the color object, specified as a value between 0.0 and 1.0.
@param blue The blue component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the hue component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the saturation component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the value component of the color object, specified as a value between 0.0 and 1.0.
*/
+ (void)convertRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue toHue:(CGFloat *)hue saturation:(CGFloat *)saturation value:(CGFloat *)value;
/**
Converts HSV components to RGB components.
@param hue The hue component of the color object, specified as a value between 0.0 and 1.0.
@param saturation The saturation component of the color object, specified as a value between 0.0 and 1.0.
@param value The value component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the red component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the green component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the blue component of the color object, specified as a value between 0.0 and 1.0.
*/
+ (void)convertHue:(CGFloat)hue saturation:(CGFloat)saturation value:(CGFloat)value toRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue;
/**
Converts RGB components to HSL components.
@param red The red component of the color object, specified as a value between 0.0 and 1.0.
@param green The green component of the color object, specified as a value between 0.0 and 1.0.
@param blue The blue component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the hue component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the saturation component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the luminosity component of the color object, specified as a value between 0.0 and 1.0.
*/
+ (void)convertRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue toHue:(CGFloat *)hue saturation:(CGFloat *)saturation lightness:(CGFloat *)lightness;
/**
Converts HSL components to RGB components.
@param hue The hue component of the color object, specified as a value between 0.0 and 1.0.
@param saturation The saturation component of the color object, specified as a value between 0.0 and 1.0.
@param luminosity The luminosity component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the red component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the green component of the color object, specified as a value between 0.0 and 1.0.
@param On return, the blue component of the color object, specified as a value between 0.0 and 1.0.
*/
+ (void)convertHue:(CGFloat)hue saturation:(CGFloat)saturation luminosity:(CGFloat)luminosity toRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue;
@end