首先在于开发时间和开发厂家不同。sRGB色彩空间是美国的惠普公司和微软公司于1997年共同开发的标准色彩空间(standard Red Green Blue),由于这两家公司的实力强,他们的产品在市场中占有很高的份额。而AdobeRGB色彩空间是由美国以开发Photoshop软件而闻名的 Adobe公司1998年推出的色彩空间标准,它拥有宽广的色彩空间和良好的色彩层次表现,与sRGB色彩空间相比,它还有一个优点:就是Adobe RGB还包含了sRGB所没有完全覆盖的CMYK色彩空间。这使得Adobe RG8色彩空间在印刷等领域具有更明显的优势。
【两种色彩空间对比 】
两种色彩空间所包含的色彩范围不同。Adobe RGB有更加宽广的色彩空间能再现更鲜艳的色彩,因为Adobe RGB比sRGB具有现大的色彩空间。此外,在图像处理和编辑方面有更大的自由度。
P.S.什么是色彩空间?
基本上来看,色彩空间其实就是一个颜色的范围,Jpeg这种压缩格式最多可以包含1670万色,但目前尚未有任何一种色彩空间使用到完整的1670万色。而色彩空间就是允许使用者在这1670万色中使用较宽或是较窄的范围,而这两者色彩设定不同的地方一个可获得更广泛的色彩范围,另一个变为较窄的色彩范围。
如同上图所示,两张相同的图像与颜色,采用了不同色彩空间,你可以发现其中有些微的差异。以直接的感官感受来看,AdobeRGB相较于sRGB在色彩上看起来似乎比较有活力,而sRGB的色彩表现看起来稍微平淡了一些。
【应用范围不同】
“sRGB”意为“标准 RGB 色彩空间”,这一标准应用的范围十分广泛,其他许许多多的硬件及软件开发商也都采用了sRGB色彩空间做为其产品的色彩空间标准,逐步成为许多扫描仪、低档打印机和软件的默认色彩空间,同样采用sRGB色彩空间的设备之间,可以实现色彩相互模拟。同时,sRGB这一色彩空间也是为Web设计者而设计的。相反,大部分显示屏无法再现sRGB的色彩空间,如果没有进行色彩管理,在电脑显示屏显示的话,比sRGB图像更浅。
.net FrameWork 3.0 后,我们会发现有两个Color数据结构。
一个是:System.Drawing.Color
一个是:System.Windows.Media.Color
【两者结构区别】
下面是对这两个类的属性的一个简单比较:
我们可以在上面看到,关键是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。在这个范围之内,
关系并非是线性的,如下表所示。
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倍。不仅能够使用整数,还能够使用浮点数,提高图像的精细程度。
【总结】
看到这边相信各位朋友应该不会觉得太复杂、太难理解吧。简单来说,使用sRGB还是可以让你拥有美丽的照片,只是若有输出需求的朋友,AdobeRGB提供了更宽广的色彩范围,这一切还是取决于个人的喜好。AdobeRGB确实提供了更丰富的色彩范围,但也多了一分复杂度,所以如果你们也是像我一样的完美主义者,同时又有输出需求,使用AdobeRGB获得更好的色彩表现,或许是一个不错的选择。
【参考资料】
关于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
知乎sRGB 和 Adobe RGB 有什么区别
http://www.zhihu.com/question/20602284