Quartz2DIOS软件开发编程指南之颜色和颜色空间..docx

Quartz2DIOS软件开发编程指南之颜色和颜色空间..docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Quartz2DIOS软件开发编程指南之颜色和颜色空间.

不同的设备(显示器、打印机、扫描仪、摄像头)处理颜色的方式是不同的。每种设备都有其所能支持的颜色值范围。一种设备能支持的颜色可能在其它设备中无法支持。为了有效的使用颜色及理解Quartz 2D中用于颜色及颜色空间的函数,我们需要熟悉在Color Management Overview文档中所使用的术语。该文档中讨论了色觉、颜色值、设备依赖及设备颜色空间、颜色匹配问题、再现意图(rendering intent)、颜色管理模块和ColorSync。在本章中,我们将学习Quartz处理颜色和颜色空间,以及什么是alpha组件。本章同时也讨论如下问题:创建颜色空间创建和设置颜色设置再现意图颜色与颜色空间Quartz中的颜色是用一组值来表示。而颜色空间用于解析这些颜色信息。例如,表4-1列出了在全亮度下蓝色值在不同颜色空间下的值。如果不知道颜色空间及颜色空间所能接受的值,我们没有办法知道一组值所表示的颜色。?如果我们使用了错误的颜色空间,我们可能会获得完全不同的颜色,如图4-1所示。?颜色空间可以有不同数量的组件。表4-1中的颜色空间中其中三个只有三个组件,而CMYK有四个组件。值的范围与颜色空间有关。对大部分颜色空间来说,颜色值范围为[0.0, 1.0],1.0表示全亮度。例如,全亮度蓝色值在Quartz的RGB颜色空间中的值是(0, 0, 1.0)。在Quartz中,颜色值同样有一个alpha值来表示透明度。在表4-1中没有列出该值。alpha值alpha值是图形状态参数,Quartz用它来确定新的绘图对象如何与已存在的对象混合。在全强度下,新的绘图对象是不透明的。在0强度下,新的绘图对象是完全透明的。图4-2显示了5个大的方形,分别使用了alpha值为1.0, 0.75, 0.5, 0.1和0.0。随着大方形逐渐变得透明,底下的小的不透明的方形逐渐显现出来。?我们可以将两个对象绘制到page上,而page可以在渲染前通过设置全局的graphics context来设置自己的透明度。图4-3显示了将全局的透明度设置为0.5和1.0的效果。?在标准混合模式(图形状态的默认模式)下,Quartz使用下面的公式来混合源颜色和目标颜色的组件:?复制代码destination = (alpha * source) + (1 - alpha) * destination其中源颜色是新绘制的颜色,目标颜色是背景颜色。该公式可用于新绘制的形状和图像。对于对象透明度来说,alpha值为1.0时表示新对象是完全不透明的,值0.0表示新对象是完全透明的。0.0与1.0之间的值指定对象的透明度。我们可以为所有接受颜色的程序指定一个alpha值作为颜色值的最后一个组件。同样也可以使用CGContextSetAlpha函数来指定全局的alpha值。记住,如果同时设置以上两个值,Quartz将混合全局alpha值与对象的alpha值。为了让page完全透明,我们可以调用CGContextClearRect函数来清除图形上下文(graphics context)的alpha通道。例如,我们可以在给图标创建一个透明遮罩或者使窗口的背景透明时,采用这种方法。创建颜色空间Quartz支持颜色管理系统使用的标准颜色空间,也支持通用的颜色空间、索引颜色空间和模式(pattern)颜色空间。设备颜色空间以一种简便的方法在不同设备间表示颜色。它用于在两种不同设备间的本地颜色空间转换颜色数据。设备依赖颜色空间的颜色在不同设备上显示时效果是一样的,它扩展了设备的能力。基于此,设备依赖颜色空间是显示颜色时最好的选择。如果应用程序有精确的颜色表示需求,则应该总是使用设备依赖颜色空间。通用颜色空间(generic color space)是一种常用的设备依赖颜色空间。通用颜色空间通过操作系统为我们的应用程序提供最好的颜色空间。它能使在显示器上与在打印机上打印效果是一样的。引用text\">重要:IOS不支持设备依赖颜色空间或通用颜色空间。IOS应用程序必须使用设备颜色空间(device color space)。创建设备依赖颜色空间为了创建设备依赖颜色空间,我们需要给Quartz提供白色参考点,黑色参考点及特殊设备的gamma值。Quartz使用这些信息将源颜色空间的颜色值转化为输出设备颜色空间的颜色值。Quartz支持设备依赖颜色空间,创建此空间的函数如下:L*a*b是非线性转换,它属于Munsell颜色符号系统(该系统使用色度、值、饱和度来指定颜色)。 L组件表示亮度值,a组件表示绿色与红色之间的值,b组件表示蓝色与黄色之间的值。该颜色空间设计用于模拟人脑解码颜色。使用函数CGColorSpaceCreateLab来创建。ICC颜色空间是由ICC(由国际色彩聪明,Internati

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档