介绍一下如何设置CGColor颜色值
来源:互联网 发布:mac可以用手绘板吗 编辑:程序博客网 时间:2024/06/18 16:24
之前发了一篇关于如何在iPhone中使用渐变的文章,忽然想起来本站并没有相关介绍颜色的文章。这里简单介绍一下如何取CGColor的颜色值,最好你对色彩的构成有一点基础,如果会用Photoshop就更好了,因为本文内容中会掺杂有一点Photoshop的知识。这篇文章的内容同时支持Mac与iPhone。
要在屏幕上显示颜色,通常需要使用RGB去表示。R表示红、G表示绿、B表示蓝。CMYK也是用于表示颜色的方法,但是由于CMYK是用于印刷,因此RGB范畴内的颜色有一些是无法用CMYK表示的(比如比较亮的萤光色)。它们之间的差别主要是RGB表示的是发光物体的颜色(屏幕本身是发光直射到眼睛的),而CMYK表示的是反射光(比如纸上的图,是别的物体比如太阳或者灯发光,通过它反射到我们眼睛里,我们才看到颜色)。这里面比较深入的内容如果你有兴趣请你去搜索。
如果你了解一点web上取颜色的方法,你应该知道web中颜色的数值是这样表示的:
#FFCC00 表示一种亮黄色,前两位FF是红色分量,CC是绿色分量,00是蓝色分量。00表示黑,也就是没有这个颜色,FF表示这个颜色的最大值。这个数字越小越暗(屏幕不发光),越大越亮(光越强)。
通过Core Library的文档,我们知道创建颜色有这么几个方法:
CGColorCreate
CGColorCreateCopy
CGColorCreateGenericGray
CGColorCreateGenericRGB
CGColorCreateGenericCMYK
CGColorCreateCopyWithAlpha
CGColorCreateWithPattern
再来看一下CGColorCreate:
CGColorRef CGColorCreate (
CGColorSpaceRef colorspace,
const CGFloat components[]
);
我们通过CGColorCreate就可以创建颜色。既然我们要用RGB表示颜色,那么colorspace这个参数我们就可以使用CGColorSpaceCreateDeviceRGB(),而我们主要来探讨components这个参数。
这个参数是一个数组,带有4个数值:
float color[]={红色分量, 绿色分量, 蓝色分量, alpha分量};
这4个数值都是0-1区间,0表示黑(不发光),数字越大这种颜色的光线越强,alpha分量表示透明度。比如{1.0, 0, 0,1.0}就是纯红色而且完全不透明。
纯红、纯绿、纯蓝很简单,可是如何在程序中使用我想要的其他颜色呢?
比如我想使用渐变创建下面这幅图,我先用Photoshop选两个颜色,把它画出来:
用Photoshop取色的比较简单的方法是先按热键B,选择画笔,然后按住option(Windows版是alt),鼠标指针就变成了吸管。在需要取色的地方按一下,当前颜色就设置成了鼠标位置上的颜色。
我们就得到了这两个不同的蓝色。
点一下工具条上的当前色,拾色器就出来了:
我们可以看到比较浅的这个蓝色的RGB数值是:174,201,255。
那么我们需要的CGColor的颜色是什么呢?就是{174/255, 201/255, 255/255, 1.0} 因为Photoshop中RGB颜色的范畴是0-255,我们只需要做一下除法就可以了。
结果就是
float lightblue[]={0.6824f, 0.7882f, 1.0f, 1.0f};
同理,深一点的那个蓝色的值
就是 {0, 58/255, 163/255, 1.0},也就是
float darkblue[]={0.0f, 0.2275f, 0.6392f, 1.0f};
这样一来,你就可以用CGColor在程序中画出任何你想要的颜色了。
- 介绍一下如何设置CGColor颜色值
- 如何设置CGColor颜色值
- 如何设置CGColor颜色值
- 颜色(二):CGColor
- 细说iOS中的颜色UIColor、CGColor、CIColor
- 如何设置网页背景颜色
- 如何设置Flex4 ProcessBar颜色
- NS2如何设置节点颜色
- 如何设置文档背景颜色
- 如何设置状态栏字体颜色
- UIButton 如何设置字体颜色
- QGraphicsTextItem如何设置文本颜色?
- Highcharts如何设置背景颜色
- MpAndroidChart如何根据Y轴值设置不同的颜色
- highcharts图表组件如何设置某个数据点的颜色或者数据标签的颜色值
- 颜色设置值
- echart如何设置饼图的颜色以及柱状图颜色
- Android 如何设置状态栏颜色和标题栏颜色一致
- JAVA学习笔记(4)数组(简)
- 语义缩放中数据不能定位问题
- Silverlight WCF RIA服务(七)中间层简介
- Visual C++开发工具与调试技巧整理
- 数据库基础 之 “存储过程和触发器”
- 介绍一下如何设置CGColor颜色值
- void operator=(const CClass&) 和 CClass& operator=(const CClass&)两种赋值运算符重载的区别
- Desktop Computer操作系统之GUI发展
- Silverlight WCF RIA服务(八)Domain Services 1
- PB TreeView 属性,事件详解(转)
- core motion begin
- Apache POI组件操作Excel,制作报表(三)
- Silverlight WCF RIA服务(九)Domain Service 2
- 拿什么跟iPad比?最低配Surface也要1000美元!