找回密码
 立即注册

QQ登录

只需一步,快速开始

Carl

版主

49

主题

213

帖子

962

积分

版主

Rank: 7Rank: 7Rank: 7

积分
962

活字格认证微信认证勋章

QQ
Carl
版主   /  发表于:2009-12-15 17:23  /   查看:11235  /  回复:0
Post by "Uther",2008-04-01, 16:26
-----------------------------------------------------

看到了两篇关于色彩空间的帖子,第一篇是介绍这个色彩空间的发展,后一篇是对比sRGBscRGB
===================================第一篇=======================================
原文http://hi.baidu.com/cybo/blog/item/8f24ba38bbb584c1d5622597.html


我们有幸能欣赏这个五彩缤纷的世界,是因为我们的眼睛能判别从红到紫的一系列颜色。令人惊奇的是,只要用三种被称为原色的色彩红、绿、蓝(或者它们的补色黄、品红、青),按不同比例混合,就能模拟千变万化的各种色彩,让我们的眼睛信以为真。
我们太幸运了,如果不是用三四种颜色就能模拟诸多色彩,我们就很难复制和重现这个瑰丽多姿的世界。


你看到上面的这一幅图像,有一个“舌形”色域空间,也是人眼能够辨别的色彩空间,它的边缘围绕一道从波长从380到700(毫微米)的光谱,中间就是用红、绿、蓝三种颜色按不同比例调配出来的颜色。

这幅图的巧妙之外在于它通过“归一化”,用两维平面来表示三个数据。X轴是红色的比例,Y轴是绿色的比例,而Z轴是蓝色的比例,虽然Z轴没有画出来,但它的比例数据可以很方便地计算出来。比方红是0.2,绿是0.3,那么蓝就是0.5。因为它们三者加起来必须等于1,不然怎么叫“归一化”呢!图上任何一点的蓝色分量,你都可以用这个方法计算出来。

10年前,微软和惠普公司推出一个叫标准红绿蓝的色域标准(sRGB),是一个基于32位PC机的标准。你可以从上面的图片看到,它只是人眼能辨别的色彩空间(舌形色域)的一部分,人眼能辨别的好多色彩它都无法显示。但这个标准还是被广泛接受。我们现在在使用的显示器、扫描仪、打印机、数码相机,许多都使用这个标准。

后来,大概过了两年,Adobe推出了Adobe RGB标准,显然色域要比sRGB的范围更宽广,这几年有好多上述设备采用了这一标准,然而它们都无法覆盖人眼可见的色域范围。

2003年,微软又推出了scRGB色域标准,它大大拓展了色域范围,不仅全部复盖人眼可见的色域范围,还把空间扩展了很多。其精细程度也大大超过sRGB,从下面的图片中我们可以看到它们的区别(你看那些放大了的云彩)。



===================================第二篇=======================================
原文http://blog.csdn.net/ghj1976/archive/2007/12/30/2004792.aspx


.net FrameWork 3.0 后,我们会发现有两个Color数据结构。
一个是:System.Drawing.Color
一个是:System.Windows.Media.Color
这两个结构有啥区别呢?
下面是对这两个类的属性的一个简单比较:

System.Drawing.Color Structure
System.Windows.Media.Color Structure
所在组件
System.Drawing.dll
PresentationCore.dll
支持的版本
.NET Framework
Supported in: 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0, 1.1, 1.0
.NET Compact Framework
Supported in: 3.5, 2.0, 1.0
XNA Framework
Supported in: 1.0
.NET Framework
Supported in: 3.5, 3.0 SP1, 3.0
A
Gets the alpha component value of this Color structure.
Gets or sets the sRGB alpha channel value of the color.
B
Gets the blue component value of this Color structure.
Gets or sets the sRGB blue channel value of the color.
G
Gets the green component value of this Color structure.
Gets or sets the sRGB green channel value of the color.
R
Gets the red component value of this Color structure.
Gets or sets the sRGB red channel value of the color.
ScA
不支持
Gets or sets the ScRGB alpha channel value of the color.
ScB
不支持
Gets or sets the ScRGB blue channel value of the color.
ScG
不支持
Gets or sets the ScRGB green channel value of the color.
ScR
不支持
Gets or sets the ScRGB red channel value of the color.
获得系统支持的一些颜色
Color中定义了141种系统预定义的颜色
调用方法如下:
System.Drawing.Color.AliceBlue
不在Color中定义,而是Colors中定义,获得方法类似下面写法:
System.Windows.Media.Colors.AliceBlue
系统一共预定义了141个颜色。
小结
只支持 sRGB。向下兼容
同时支持 sRGBScRGB。不兼容3.0以下的版本
我们可以在上面看到,关键是sRGB和ScRGB两种颜色表示方法。这两种有啥差别呢?我们来看下面三副图,先来感性的看看:
这幅图的巧妙之外在于它通过“归一化”,用两维平面来表示三个数据。X轴是红色的比例,Y轴是绿色的比例,而Z轴是蓝色的比例,虽然Z轴没有画出来,但它的比例数据可以很方便地计算出来。比方红是0.2,绿是0.3,那么蓝就是0.5。因为它们三者加起来必须等于1,不然怎么叫“归一化”呢!图上任何一点的蓝色分量,你都可以用这个方法计算出来。 图中的“舌形”色域空间,是人眼能够辨别的色彩空间,它的边缘围绕一道从波长从380到700(毫微米)的光谱,中间就是用红、绿、蓝三种颜色按不同比例调配出来的颜色。 而图中的三角的区域,是 sRGB 可以表示的颜色范围。显然有一些我们人类可以看到的颜色,但是sRGB来描述的。 上面这幅图对比了 sRGB、人眼、ScRGB 可以表示的颜色范围。 上面这幅图是sRGB和ScRGB两幅图的比较,注意看放大了的云彩。 sRGB 和 scRGB 的转换
在 System.Windows.Media.Color 结构中,scRGB原色其实是被储存成单精度(single-precision)的浮点数。想要容纳scRGB颜色空间,Color 结构包含四个主要的property,类型都是float,分别为ScA、ScR、ScG、ScB。
这些property和A、R、G、B property 会相互影响,改编G property也会造成ScG property的改变,反之亦然。
当G property 为0,ScG property 也会为0;当G property 为255,ScG property 就会为1。在这个范围之内,
关系并非是线性的,如下表所示。
scGG
<= 00
0.189
0.2124
0.3149
0.4170
0.5188
0.6203
0.7218
0.8231
0.9243
>=1.0255

ScR 与 R 之间的关系,ScB与B之间的关系,以及ScG与G之间的关系,也都是一样的。ScG的值可以小于0或者大于1,以容纳超出显示器和sRGB数字范围的颜色。
sRGB和scRGB的比较
sRGB目标是使同一网页在不同计算机上显示时的色彩更一致,但只适用于CRT显示器。微软HD Photo项目负责人克劳说,sRGB的挑战在于它只是完整色彩空间的一个子集,当使用sRGB编码时,我们会丢掉一些色彩。
scRGB色彩空间是sRGB扩展,对于黑色和纯绿色而言,这二者没有任何分别。二者的差别就在于scRGB能够显示人眼无法分辨的颜色,其精细程度也超过了sRGB。 scRGB描述每个点所需要的位数是sRGB 2倍,甚至是4倍。不仅能够使用整数,还能够使用浮点数,提高图像的精细程度。 参考资料: 关于scRGB色彩空间
http://hi.baidu.com/cybo/blog/item/8f24ba38bbb584c1d5622597.html
第二章 基本的Brush画刷类 [App = Code + Markup]
http://www.cnblogs.com/rickiedu/archive/2007/04/04/699529.html
GDI+与WPF中的颜色简析
http://blog.csdn.net/johnsuna/archive/2007/08/27/1761061.aspx
简述WPF中的图像像素格式(PixelFormats)
http://blog.csdn.net/johnsuna/archive/2007/08/28/1762901.aspx
愿 Engine 归于沉寂,Timer 停止运动,Message Queue 不再流淌,Data Source 为我掌握

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部