颜色空间
你有没有走进一家电视商店,许多电视都播放同一段视频?每台电视上的视频看起来有点不同(更亮,更黄,不同的对比度)?
捕获设备(数码相机、扫描仪)和显示设备(监视器、打印机)具有各种技术特性。颜色空间提供了使颜色看起来始终相同的能力,无论使用了什么捕获或显示设备
绝对颜色
要比较现实世界中哪个物体更重,我们需要给每个物体一个数字:重量(测量它)。如果两个对象的权重相同,则这两个对象的权重相同。有许多重量单位(克、磅、盎司),可以换算成一个单位
为了比较现实世界中的颜色,每种颜色也应该有一个数字。两种颜色是相同的,如果这两种颜色的数字相同的话。有两种流行的单位(颜色空间),它们在实践中使用:CIELAB和CIEXYZ
克(重量单位)由一个数字组成(例如150克),CIELAB(颜色单位)由三个数字组成(例如CIELAB 0.5、0.7、0.1)。这些数字称为"频道"或"组件"
假设我们在墙上有一个正方形的洞,另一边有一个苹果,后面有一块蓝色的布。我们拍一张照片,打印出来,然后把打印出来的照片放在墙上的第二个洞后面(用适当的灯光照明)。我们也在液晶显示器上显示同样的图片,我们把它放在第三个孔后面
如果数码相机能够将真实的颜色存储到正确的CIELAB值中,并且打印机和显示器都能正确地再现任何CIELAB值,我们就不应该(用眼睛)分辨出哪个洞里有一个真正的苹果,哪个是显示器,哪个是纸上的墨水
设备特定颜色
第一个监视器通过组合三个灯(通常称为红、绿和蓝(RGB))来创建颜色(注意,颜色方面的"红"是不明确的,就像重量方面的"重"一样;需要指定CIELAB值才能精确)。将颜色数字存储为三个数字是很自然的:红色、绿色和蓝色的强度用于特定的显示器。这种颜色在该品牌的所有显示器上都是一样的。但这些值与CIELAB无关
更多的显示器制造商出现了,他们每一个都使用不同物理性质的材料。一个显示器的RGB颜色值在另一个牌子的显示器上看起来不同。最后,创建了一个包含三个组件的适当系统,称为标准RGB或sRGB。有一个精确的公式,如何在sRGB和CIELAB之间转换,因此每个sRGB颜色实际上对应于一个真实的(明确的)CIELAB颜色
所有图像都存储在sRGB颜色空间中。每个监视器都提供许多设置,允许人们"校准"监视器,直到它正确显示sRGB值
打印机也有同样的问题。它们通常通过混合四种墨水来产生颜色,即青色、洋红、黄色和黑色(CMYK)。由一台打印机打印的这些墨水的特定比例在具有不同化学性质的墨水的另一台打印机上可能看起来不同。有些打印机甚至可以使用五种或更多墨水。一些打印机可以产生颜色,而其他打印机不能产生颜色
颜色配置文件
比方说,绝对CIELAB颜色[0.3,0.8,0.1]可以用RGB信号[224107158]显示在监视器a上,用RGB信号[23199161]显示在监视器B上。我们可以说,每个监视器都有自己的颜色空间,它可以将CIELAB中的任何值转换为自己的空间。我们可以将颜色存储为任何一组数字,而不是以数字形式存储为CIELAB,只要我们提供一种机制,如何将这些数字转换为CIELAB
ICC配置文件解决了设备特定颜色的所有问题。ICC配置文件(对于特定的颜色空间X)是一组指令,说明如何将颜色空间X的值转换为CIELAB,然后再转换回来。这些指令存储在一个特殊的文件:ICC文件(例如"Canon_printer_123.ICC")。由于ICC配置文件描述了空间X和CIELAB之间的转换,因此它完全描述了颜色空间X
***类比:我们可以创建一个"bukalas"的"权重空间"。一份"体重表"会说,"一个布卡拉是1200克"。它允许我们在"bukalas"和grams之间转换,所以它完全描述了"bukala"是什么
这意味着,每个数字图像(JPG,PNG,PDF)必须配备一个ICC配置文件(以便我们能够将其颜色值转换为CIELAB),每个打印机必须配备一个ICC配置文件(以便它可以将绝对CIELAB颜色转换为自己的四个墨水值)
如果没有ICC配置文件,每个相机可能会在自己的颜色空间中存储颜色。每台打印机和显示器都必须为每种型号相机的图像配备特殊配置,并随着市场上出现新相机而更新这些配置。一、 e.每个图像显示设备必须了解所有现有的图像捕获设备,并对其图像进行特殊配置
对于ICC配置文件,我们只指定如何在"我们自己的"设备特定颜色和"通用"CIELAB颜色之间进行转换。当每一方都能提供这样的ICC配置文件时,结果是一样的,就像我们在任何地方都使用CIELAB空间一样
通常,打印软件可以检测数字图像的ICC轮廓,并自动将其转换成打印机轮廓。此外,图像查看器将图像的颜色转换为CIELAB(使用ICC配置文件)和CIELAB到sRGB,而图形驱动程序将sRGB颜色转换为监视器的颜色空间(使用监视器制造商提供的ICC配置文件)。实际上我们不处理任何ICC文件,计算机(软件)会自动处理它们
当我们有一个没有ICC配置文件的图像时,"猜测"它的颜色空间是非常危险的。这就像有一些数字指定重量,并猜测,如果他们是克或盎司
而且,仅仅说一个图像(文件)在RGB或CMYK中是没有意义的。值(255,0,0)可以是红色,也可以是绿色。除非指定了颜色空间(使用ICC文件),否则我们无法确定文件中的值代表什么颜色
sRGB空间非常流行用于存储数字图像。(图像的)作者通常只指定图像在sRGB中,而不附加特定的ICC文件。把sRGB转换成CIELAB是非常简单的,而且公式通常是建立在图形软件中的
sRGB也用于Web:当我们在CSS中指定\ff00ff;
或rgb(255,0255)
时,浏览器希望这些值位于sRGB空间中