sRGB和scRGB的区别

本文对比了System.Drawing.Color和System.Windows.Media.Color两个结构的区别,重点解析了sRGB和ScRGB两种颜色空间的特点及应用场景。介绍了这两种颜色空间的表示方法、支持范围以及它们之间的转换。

.net FrameWork 3.0 后,我们会发现有两个Color数据结构。
一个是:System.Drawing.Color
一个是:System.Windows.Media.Color

这两个结构有啥区别呢?

下面是对这两个类的属性的一个简单比较:

 System.Drawing.Color StructureSystem.Windows.Media.Color Structure
所在组件System.Drawing.dllPresentationCore.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

AGets the alpha component value of this Color structure. Gets or sets the sRGB alpha channel value of the color.
BGets the blue component value of this Color structure.Gets or sets the sRGB blue channel value of the color.
GGets the green component value of this Color structure.Gets or sets the sRGB green channel value of the color.
RGets 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。向下兼容同时支持 sRGB、ScRGB。不兼容3.0以下的版本

我们可以在上面看到,关键是sRGB和ScRGB两种颜色表示方法。这两种有啥差别呢?我们来看下面三副图,先来感性的看看:

人眼可以看到的颜色范围以及sRGB的范围

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

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

而图中的三角的区域,是 sRGB 可以表示的颜色范围。显然有一些我们人类可以看到的颜色,但是sRGB来描述的。

scRGB的颜色范围和人眼可以看到的范围

上面这幅图对比了 sRGB、人眼、ScRGB 可以表示的颜色范围。

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.youkuaiyun.com/johnsuna/archive/2007/08/27/1761061.aspx

简述WPF中的图像像素格式(PixelFormats)
http://blog.youkuaiyun.com/johnsuna/archive/2007/08/28/1762901.aspx

<think>我们正在讨论sRGBRGB的区别。用户的问题集中在sRGBRGB的区别上。根据引用内容,我们可以总结以下几点: 1. sRGB是一种特定的RGB颜色空间标准,而RGB通常指一般的红绿蓝颜色模型。 2. sRGB的色域范围较小,主要用于网络一般显示设备[^1][^3]。 3. Adobe RGB的色域比sRGB更大,适合专业摄影印刷[^1][^3]。 4. sRGBAdobe RGB在存储显示时都需要进行伽马校正(非线性编码)[^2]。 因此,我们可以将回答分为几个部分:定义、色域差异、应用场景、伽马校正处理。 注意:引用中提到的“RGB”有时指线性RGB,而sRGBAdobe RGB都是经过伽马编码的RGB空间。在图像处理中,通常需要将伽马编码的值转换为线性RGB进行处理,然后再编码回去[^2]。 回答结构: 1. 基本概念:解释RGB颜色模型sRGB标准。 2. 色域对比:比较sRGBAdobe RGB的色域范围。 3. 应用场景:各自适用的领域。 4. 技术处理:伽马校正的重要性。 最后生成相关问题。</think>### sRGB与RGB的区别解析 #### 一、基本概念差异 1. **RGB颜色模型** 指通用的**红绿蓝三原色加法混色模型**,通过不同强度的红、绿、蓝光混合产生各种颜色。这是一个理论框架,不限定具体色域范围。 2. **sRGB标准** 是RGB模型的**具体实现标准**,由HP微软于1996年制定: - 定义了精确的色域范围(比普通RGB更小) - 规范了伽马校正参数(γ=2.2) - 建立了显示设备的色彩管理规范[^1][^3] > 简言之:RGB是理论概念,sRGB是具体工业标准,如同"车辆"(理论)与"丰田汽车"(具体标准)的关系。 #### 二、核心区别对比 | **特性** | **sRGB** | **通用RGB** | |----------------|-----------------------------------|--------------------------| | 色域范围 | 较小(仅覆盖约35% CIE色域)[^3] | 无固定范围 | | 伽马校正 | 强制使用γ=2.2非线性编码[^2] | 无强制要求 | | 应用场景 | 网络显示、消费级显示器 | 专业设计、印刷、摄影 | | 颜色存储 | 8位/通道(0-255) | 可支持更高位深(如16位) | | 标准制定方 | HP/微软(1996) | 无统一标准 | #### 三、关键技术差异 1. **伽马校正处理** sRGB要求严格遵循伽马编码公式: $$ R' = \begin{cases} 12.92R & R \leq 0.0031308 \\ 1.055R^{1/2.4} - 0.055 & R > 0.0031308 \end{cases} $$ 其中$R$是线性光值,$R'$是存储的sRGB值[^2]。通用RGB则无此强制要求。 2. **色域局限性** sRGB的色域范围明显小于专业RGB标准(如Adobe RGB): ![色域对比图](https://example.com/color-gamut.png) *图示:sRGB(内三角) vs Adobe RGB(外三角)色域范围[^3]* 3. **色彩管理差异** - sRGB:内置色彩配置文件,不同设备显示一致性较高 - 通用RGB:需手动色彩管理,否则可能出现偏色 #### 四、应用场景选择 1. **优先使用sRGB** - 网页设计(90%浏览器支持sRGB) - 社交媒体图片(避免跨平台色偏) - 普通办公文档 2. **选择专业RGB标准** - 摄影后期处理(推荐Adobe RGB) - 印刷品设计(CMYK转换前) - HDR内容制作(需广色域) > **实践建议**:普通用户选择sRGB可避免色彩管理问题;专业工作者应在工作流初期使用Adobe RGB等宽色域标准,最终输出时转换为sRGB[^1][^3]。 #### 五、常见误区澄清 1. **"sRGB=RGB"谬误** sRGB只是RGB的一种实现,类似"iPhone是手机"但"手机≠iPhone"。 2. **位深误解** sRGB虽常用8位/通道,但也可扩展至16位,核心区别在色域与伽马规范。 3. **显示设备标注** 显示器标注"支持sRGB"指符合该标准色域,而"100% RGB"通常是营销术语无明确标准。 > 关键结论:sRGB是**标准化、窄色域、面向大众显示**的RGB实现;通用RGB是**理论模型**,专业标准(如Adobe RGB)可提供更广色域[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值