Colours–颜色库,包含100种预定义的颜色和方法

简介

Colours–颜色库,包含各种100种预定义的颜色和方法,可以简化颜色相关的开发工作.

项目主页: Colours

最新示例: 点击下载

快速入门

安装

通过Cocoapods安装

pod ‘Colours‘

手动安装

把 Colours.h 和 Colours.m拖进你的工程里,在需要的地方引入头文件即可:

#import "Colours.h"

使用

调色板,一组预定义的颜色

具体可点击这里查看: 100个预定义的颜色

使用预定义的颜色

Colours 预定义了100 多种颜色,用法和使用iOS系统预定义的方式一样:

[UIColor indigoColor]; // indigoColor是Colours预定义的一种颜色.

颜色相关的工具方法

十六进制字符串与颜色的相互转换

UIColor *newColor = [UIColor colorFromHexString:@"#f587e4"];
NSString *hexString = [newColor hexString];

RGBA与颜色的相互转换.

RGBA数组与颜色的相互转换
NSArray *colorArray = [[UIColor seafoamColor] rgbaArray];// 数组中存储四个NSNumber对象分别代表RGBA的四个值,取值范围 0-1.
UIColor *newColor = [UIColor colorFromRGBAArray:colorArray];
RGBA字典与颜色的相互转换

预定义的四个键是:

  • kColoursRGBA_R
  • kColoursRGBA_G
  • kColoursRGBA_B
  • kColoursRGBA_A
NSDictionary *colorDict = [[UIColor seafoamColor] rgbaDictionary];
UIColor *newColor = [UIColor colorFromRGBADictionary:colorDict];

// 你可以获取某个单独的值:
NSNumber *r = colorDict[kColoursRGBA_R];

HSBA数组与颜色的相互转换

NSArray *colorArray = [[UIColor seafoamColor] hsbaArray];// 数组中存储四个NSNumber,分别代表H(色调),S(色饱和度),B(亮度),A(透明度)的值.
NSDictionary *colorDict = [[UIColor seafoamColor] hsbaDictionary];

HSBA与颜色的相互转换

与RGBA与颜色的相互转换类似,预定义的键是:

  • kColoursHSBA_H  色调
  • kColoursHSBA_S  色饱和度
  • kColoursHSBA_B  色亮度
  • kColoursHSBA_A  透明度
NSArray *colorArray = [[UIColor seafoamColor] hsbaArray];
NSDictionary *colorDict = [[UIColor seafoamColor] hsbaDictionary];

UIColor *newColor1 = [UIColor colorFromHSBAArray:colorArray];
UIColor *newColor2 = [UIColor colorFromHSBADictionary:colorDictionary];

CIELAB 与颜色的相互转换

与RGBA与颜色的相互转换类似,预定义的键是:

  • kColoursCIE_L
  • kColoursCIE_A
  • kColoursCIE_B
  • kColoursCIE_alpha
NSArray *colorArray = [[UIColor seafoamColor] CIE_LabArray];
NSDictionary *colorDict = [[UIColor seafoamColor] CIE_LabDictionary];

UIColor *newColor1 = [UIColor colorFromCIE_LabArray:colorArray];
UIColor *newColor2 = [UIColor colorFromCIE_LabDictionary:colorDictionary];

CMYK 与颜色的相互转换

与RGBA与颜色的相互转换用法相似,预定义的键是:

  • kColoursCMYK_C 青
  • kColoursCMYK_M 品红
  • kColoursCMYK_Y 黄
  • kColoursCMYK_K 黑
NSArray *colorArray = [[UIColor seafoamColor] cmykArray];
NSDictionary *colorDict = [[UIColor seafoamColor] cmykDictionary];

UIColor *newColor1 = [UIColor colorFromCMYKArray:colorArray];
UIColor *newColor2 = [UIColor colorFromCMYKDictionary:colorDictionary];

获取所有颜色信息

colorComponents 方法会返回一个字典,包含RGBA, HSBA, CIE_LAB和CMYK预定义的所有键:

NSDictionary *components = [someColor colorComponents];
CGFloat H = components[kColoursHSBA_H];
CGFloat L = components[kColoursCIE_L];

如果你一次只想某个某一条颜色相关的信息,可以使用下面的方法:

CGFloat R = [[UIColor tomatoColor] red];
CGFloat G = [[UIColor tomatoColor] green];
CGFloat B = [[UIColor tomatoColor] blue];
CGFloat H = [[UIColor tomatoColor] hue];
CGFloat S = [[UIColor tomatoColor] saturation];
CGFloat B = [[UIColor tomatoColor] brightness];
CGFloat CIE_L = [[UIColor tomatoColor] CIE_Lightness];
CGFloat CIE_A = [[UIColor tomatoColor] CIE_a];
CGFloat CIE_B = [[UIColor tomatoColor] CIE_b];
CGFloat alpha = [[UIColor tomatoColor] alpha];

颜色变亮/变暗

// 取值范围 0->1
UIColor *lighterColor = [[UIColor seafoamColor] lighten:0.25f];
UIColor *darkerColor = [[UIColor seafoamColor] darken:0.25f];

获取对比色

// 根据给定的颜色,自动与之能形成对比色的黑色或白色.
UIColor *contrastingColor = [[UIColor seafoamColor] blackOrWhiteContrastingColor];

获取互补色

// 返回一个给定颜色的互补色:色调改变,色调和饱和度不变.
UIColor *complementary = [[UIColor seafoamColor] complementaryColor];

获取两个颜色间的差别

// 此处的差别,综合考虑了人的感官,数学统计算法等,不是一般的RGB差值.
CGFloat distance = [someColor distanceFromColor:someOtherColor type:ColorDistanceCIE94];
BOOL isNoticablySimilar = distance < threshold;

基于一种颜色,产生多种对应的颜色方案

使用 colorSchemeOfType 方法可以基于某一个颜色,产生四个新的漂亮合适的颜色,并把全部五个颜色以数组形式返回.同一种颜色,不同的方案也会产生不同的颜色组合.

NSArray *colorScheme = [color colorSchemeOfType:ColorSchemeType];

可选颜色方案:

  • ColorSchemeAnalagous  近似色
  • ColorSchemeMonochromatic 单色
  • ColorSchemeTriad 混合色
  • ColorSchemeComplementary 互补色

下面是基于[UIColor seafoamColor]颜色的不同颜色方案返回值的示例:

ColorSchemeAnalagous

ColorSchemeMonochromatic

ColorSchemeTriad

ColorSchemeComplementary

时间: 2024-10-23 19:58:19

Colours–颜色库,包含100种预定义的颜色和方法的相关文章

move ---- 编写一个包含几种常用动画的js库

在操作dom元素的时候为了让网站显得更有活力或者某些想让人注意到, 经常需要用到一些小动画, 但常用的 jquery 库只有一种ease(先加速后减速的动画)运动方式的动画, 虽然这是很常用的动画, 但有时也会用到其他的, 最近写了一个集成几种常用动画的库, move.js , 如果不是走动画队列的话, 通常的动画库在进行一个动画的时候, 在对元素施加另一个动画就会马上停止当前动画, 马上执行新添加的动画, move动画库稍微修改了一下, 在新动画添加之后, 老动画还会继续跑, 两个动画会进行叠

Silverlight 预定义颜色速查表

预定义颜色 可以使用 SolidColorBrush 绘制,它使用预定义纯色.这可以是 Colors 的静态属性 (Property) 名称,也可以是指定为 XAML 属性 (Attribute) 值时直接作为字符串处理的另外一组颜色名称中的一个.有关已命名颜色表以及如何在代码中指定已命名颜色的说明,请参见 Color 或 SolidColorBrush.若要使用预定义颜色,可以利用已命名颜色约定将 XAML 属性 (Attribute) 语法用于任何采用 Brush 的属性 (Property

C++STL 预定义函数对象和函数适配器

预定义函数对象和函数适配器 预定义函数对象基本概念:标准模板库STL提前定义了很多预定义函数对象,#include <functional> 必须包含. 1使用预定义函数对象: void main() { plus<int> intAdd; int x = 10; int y = 20; int z = intAdd(x, y); //等价于 x + y cout << z << endl; plus<string> stringAdd; str

复习PHP-语言参考-预定义接口

1.Traversable 他是一个遍历接口规范 注意:发现一个有用的函数get_declared_classes,可以以数组形式显示当前脚本下所有已经定义的类名 2.Iterator Iterator迭代器继承自Traversable,是一种遍历对象内容的对象. 你可以自己写一个子类继承自它,并写上具体遍历的方法. Iterator包含:current(返回当前元素),key(当前键),next(下一个元素),rewind(返回至初始元素),valid(检测当前元素是否存在)五种方法. 3.I

php学习笔记 [预定义数组(超全局数组)]

<?php  预定义数组: * 自动全局变量---超全局数组 * * 1.包含了来自WEB服务器,客户端,运行环境和用户输入的数据 * 2.这些数组比较特别 * 3.全局范围内自动生效,都可以直接使用这些数组 * 4.用户不能自定义这些数组,但这些数组的操作方式和自己定义的数组操作的方式一样 * 5.在函数中直接可以使用这些数组 * * $_GET //经由URL请求提交至脚本的变量 * $_POST //经由HTTP POST 方法提交到脚本的变量 * $_REQUEST //经由GET ,

C++预定义字符函数

利用 get 成员函数可读取文件中的一切字符,包括空白字符.文件结尾.用 >> 读取文件,会自动忽略空白字符(空格.换行符.制表符) C++ 预定义的字符函数(均在 cctype 库中定义):toupper(Char_type) 返回 Char_type 的大写形式tolower(Char_type) 返回 Char_type 的小写形式isupper(Char_type) 若 Char_type 为大写,则返回真islower(Char_type) 若 Char_type 为小写,则返回真i

.NET中那些所谓的新语法之三:系统预定义委托与Lambda表达式

开篇:在上一篇中,我们了解了匿名类.匿名方法与扩展方法等所谓的新语法,这一篇我们继续征程,看看系统预定义委托(Action/Func/Predicate)和超爱的Lambda表达式.为了方便码农们,.Net基类库针对实际开发中最常用的情形提供了几个预定义好的委托,这些委托可以直接使用,无需再重头定义一个自己的委托类型.预定义委托在.Net基类库中使用的比较广泛,比如在Lambda表达式和并行计算中都大量地使用,需要我们予以关注起来! /* 新语法索引 */ 1.自动属性 Auto-Impleme

PHP魔术函数、魔术常量、预定义常量

一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__destruct() 当删除一个对象或对象操作终止时被调用. 3.__call() 对象调用某个方法, 若方法存在,则直接调用:若不存在,则会去调用__call函数. 4.__get() 读取一个对象的属性时,若属性存在,则直接返回属性值: 若不存在,则会调用__get函数. 5.__set() 设置一个

visual c++中预定义的宏

一.主要目标 (由于visual studio通常包含很多开发环境,通常将其中c/c++的ide称为visual c++ 20xx) 整理下visual c++ 2010下预定义的宏.做一下备忘和了解,在实际编码中可以考虑使用部分宏作为判断标准. 主要参考链接:http://msdn.microsoft.com/en-us/library/b0084kay(v=vs.100).aspx 二.vc++ 2010中预定义宏 注意本文中提及的所有预定义宏都是无参数的,并且不能重定义. 1. __FIL