#FF00FF(255,0,255)应该是紫色,把#FF00FF称为"品红"("洋红")是一种误称

作者:❄️固态二氧化碳❄️ (主页)
链接:#FF00FF(255, 0, 255)应该是紫色(Purple),把#FF00FF称为"品红"("洋红/Magenta")是一种误称 - 固态二氧化碳的博客 - CSDN博客
来源:CSDN博客
发表时间:2019年06月02日 18:31:06
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

注意:
  本文为历史博文,可能存在许多观点与认知上的问题与不足,该博文将在本人有时间时进行重构与完善,希望大家能够理解,不要误会,谢谢!

  在开头,我先送上几句关于质疑的名人名言

1.什么都不懂的人,什么都不怀疑。([英国] 赫伯特)
2.只有大规模的怀疑主义才能够揭开把我们同真理隔开的帷幕。([英国] 罗素)
3.自然知识的每一个大进步都包括对权威的绝对否定。([英国] 赫胥黎)
4.哪里有怀疑,哪里就有真理——怀疑是真理的影子。([英国] 贝利)

  我们从小都知道红蓝得紫的道理,这似乎是一件天经地义的事情。然而许多和计算机有关的书,或者某些教程网站上,都会把#FF00FF(255, 0, 255)(二次色的一种,与黄色,青色并列)称为"品红"("洋红")(这似乎有点颠覆我们的认知),但是我第一次看到这种说法时,觉得很奇怪,因为我觉得它一点也不红,而是非常的紫,很标准的紫,很符合红蓝得紫的定义(HTML中的紫色(深紫色)是#800080,与#FF00FF色相相同,只是明度的区别,把#FF00FF这样称呼也显得有些把两者区别对待,搞"双重标准"的感觉)。而且明明可以用一个字描述的颜色,非要用两个字表示,有种舍近求远的感觉,并且和其他颜色放在一起说也感觉比较突兀,违和感很强。莫非是因为很多人把某种紫色叫做红色,就好像把某种绿色叫做蓝色一样的道理,只是命名上的问题?
  后来知道了CMYK四色印刷系统,里面的M(Magenta),对应的中文也是品红(其色值为(228, 0, 127),代码为#E4007F,对应RGB色相327°)。但这种品红和#FF00FF完全不一样(紫色(FF00FF)色相为300°),差别十分明显。这让我产生了怀疑,因为CMYK里的那个品红是紫红色,是真正的红,而那个所谓的"品红"明显是紫色,而不是红色。到底是像把某种绿色叫做蓝色的问题一样,只是命名上的问题,还是本身就叫错了,把两种差异显著,毫无关系的颜色混为了一谈呢?
紫色和品红的区别
  要回答这个问题,就得追根溯源,从品红这个颜色的来源说起。品红(洋红)(Magenta)最初的含义是一种化学染料的名称,其名称源于意大利一次独立战争(1859年)的地名,这种染料呈紫红色,也就是现在印刷业中常用的CMYK系统中的颜色之一 ,品红溶液在化学中也是一种常见的试剂,比如用于检验二氧化硫的存在,做过实验的人都知道这种溶液是紫红色,而不是紫色。也就是说,化学和印刷业(CMYK)中的品红这个染料名称出现的时间(19世纪)是先于把FF00FF误称为"品红"的时间(计算机发明以后)的,因为那时连计算机和显示器都没有。所以品红最初的含义就是一种紫红色的染料,而不是紫色。
  还记得我们高中时化学中检验二氧化硫的方法吗?就是把气体通入品红溶液,观察是否褪色,因为二氧化硫具有漂白性。还有高中生物里的醋酸洋红液和改良苯酚品红染液(低温诱导染色体加倍实验中的),它们的作用都是给染色体染色的。如果你亲自做过实验,就知道这些溶液的颜色是什么了,它们和印刷业中的品红颜色十分相似,然而和#FF00FF却完全不像。
CMYK墨水示意图

CMYK墨水示意图(左下角是CMYK墨水)

在这里插入图片描述

CMYK墨水产品(图中的三个圆点表示CMY三色)

在这里插入图片描述

CMYK的M(Magenta)墨水产品

  真相总算浮出水面了,CMYK里的品红是真正的品红,没有问题,但是#FF00FF被叫做"品红",则绝对是一种误称,因为这种紫色和化学品红溶液的颜色毫不相干,差异显著。把FF00FF称为"品红"反而会与化学和印刷业中的真正的品红发生混淆,造成误解。然而这种说法在书籍,网络上广为流传,很多人也就默许了这种说法(毕竟他们想紫色里面有红色成分,把它叫做"X红色",错得也不是那么远)。有些人云亦云的人,把某些"专家"的话奉为圭臬,只要是书上说的都认为是权威的,然后就这样以讹传讹,不停地传下去,一传十,十传百,误导了越来越多的人。所以现在的软件也只能将错就错地这样用下去了。那究竟是什么原因导致这种这种误称的形成呢?

  其实是有两种原因“叠加”的结果,一是RGB和CMYK的错误对应,二是受传统色相命名的影响造成的颜色名称误解。

  先说原因一,即RGB和CMYK的错误对应。RGB里的二次色黄色(Yellow),青色(Cyan)和紫色(Purple),在RGB色相上与RGB正好相对,也就是所谓的光学互补色,CMYK里的CMY则是吸收光的,因此理论上RGB的光和青(C),紫(P),黄(Y)的颜料是对应的,但实际上并不是。CMYK里的Y和RGB里的黄色很接近。C和青色则不一致,CMYK的C,虽然名字叫"青色",实际颜色并不带任何青色,而是一种浅蓝色。重点来了,最值得注意的M,也就是品红,与RGB(RGI)里的二次色YCP(Yellow,Cyan,Purple)并不对应,Purple明显是紫色,与M差得十分远,是偏离得最厉害的颜色。M吸收也是绿光,没问题,但是是偏春绿色(原色绿和青色之间的颜色)的光,导致反射光B(I)分量减少,颜色从紫色偏移到紫红色,也就是印刷中M的颜色。
  当初这样叫的人,估计是为了偷懒,把RGB里的二次色和CMYK直接对应了起来,解释起来也就方便了:CMY吸收RGB,一个是减法色,一个是加法色。这种解释看上去比较"完美",他们也就觉得自己发明了一套"完备的理论",殊不知这种理论漏洞百出,有明显的错误,RGB里的二次色实际上是CPY,而并非CMY。但是如果按照他们的说法,CMY的M就和P(#FF00FF)对应了,也成了等价的颜色了,所以干脆就把#FF00FF称为"品红"("M")了,这就是这种错误叫法的来源。而这种对应是基于错误的理论的,所以对应的称呼也是错误的。所以我平时说#FF00FF的时候都会说成紫色,或者Purple,简称P。RGB和CMYK之间并没有任何直接的关系,将RGB与CMYK不加思索,(无脑)强行直接对应起来的理论是毫无根据,极其荒谬可笑的。
错误与正确的CMYK颜色合成图
  正确的解释应该是,如果按照理想情况,则CMYK的M应该是紫色的颜料(此时应称为CPYK),但是理想的紫色颜料比较难合成,成本较高(天然紫色颜料比较稀少,同时也难以合成)。而品红染料成本比较低,合成比较方便,印出来的颜色也能够接受(尽管存在不仅吸收绿光,还吸收了少量蓝光的不足,这会导致紫色的打印效果偏暗),所以印刷业就采用品红作为油墨颜色之一了(不过不得不吐槽的是:这是典型的实用主义"够用就行"的体现)。
  所以,我们得出结论,#FF00FF其实就是紫色,把#FF00FF称为"品红"只不过是一种以讹传讹的误称罢了。
  此外,现在网上的RGB转CMYK的转换工具和公式99%都是错的,它们都是基于那个偷懒的错误理论,将RGB和CMYK无脑直接对应起来的(也就是最弱智无脑的Y=(255-X)/255*100之类的公式),如果按照这个公式计算,结果将会错得离谱,和Photoshop里的值完全对不上。然而发布这个工具或者公式的人可能自己都不知道这个问题,就晕晕乎乎地把工具和公式放在网上,导致计算出错误的值,并且还误人子弟(我在网上可以说是基本上找不到一个能够正确地将RGB转换为CMYK的工具和公式的,所以我平时转换主要还是靠Photoshop)真正的能够将RGB转换为CMYK的算法(也就是Photoshop里的那个算法),应该是先将RGB转换为Lab,再将Lab转换为CMYK。这之间的转换关系非常的复杂,我将会在以后的博文中专门讲解这个算法的。

  再说原因二,即受传统色相命名的影响造成的颜色名称误解。
  这个说法在这篇文章里也提到了:https://blog.csdn.net/weixin_44938037/article/details/90599711

  下面介绍这个传统颜色命名的误区

对传统主义色相错误命名的批判!

错误的色相环

  现在广为流传的RGB色相环图,在颜色的命名方面,也存在诸多问题(bug),问题如下:
  1.300°对应的紫色(如#FF00FF)写成了"品红"(品红的真实色相在330°附近,而不是300°)。
  2.210°240°对应的颜色分别写成靛色和蓝色,事实上靛色应该排在蓝色的后面。这可能是受到三原色蓝的影响,三原色的蓝(240°)并不是最正宗的蓝,而是偏紫的靛蓝色(Indigo)。最正的蓝色,色相小于240°,240°则是靛蓝色。也就是说把这两个颜色的位置搞反了。
  3.270°对应的靛蓝色(Indigo)(如#8000FF)(仅仅比240略微偏紫,但理论上仍然属于蓝色(靛蓝色)范畴)写成了紫色(Purple),这也是受到了"品红"这个误称的影响(详见备注1)。事实上270°的Indigo只是略微偏紫的蓝色(其实它和240°的Indigo十分相近,差别可以说十分微小),也就是像较短波长的蓝色激光笔,或紫外线灯里混入了蓝光的那种靛蓝色。其蓝色成分太多,与蓝色太接近,并不足以称之为"紫色",因此把它称为"紫色"肯定是错误的。而紫色(Purple)对应的是300°,也就是在1中说的被很多人误称为了"品红"的那个地方,而这里对应的其实并不是"品红",恰恰就是紫色(Purple)

  现在用简单易懂的表格展示命名错误问题,希望大家以后不要固守传统,改用更科学的理论命名!
  (注意这里提到的“清”色(英文cyan),其实这个“清"是我生造的颜色字,专用于指代这种技术上的#00FFFF色,造字逻辑是"比青更蓝的颜色”,左侧"三点水"有偏浅蓝的暗示,右侧"青"则表示它也是一种偏青的颜色。之所以不沿用RGB说法叫“青”,是因为在感觉四原色系统(后面会提到)中,青专指"aquamint",该色比cyan更偏绿)

RGB色相 理论上合理的色相名 传统民间常用名称(某些是错误名称,这些是批判对象,未来应该彻底废弃,传统色名分布在色相上其实极其不均匀) 传统命名与理论色相名是否一致
0 红(纯红)
20 红-橙 橙红
25 红-黄(橙)
30 红-黄(橙)
45
60 黄(RGB黄/柠檬黄)
70 黄-绿 黄绿
90 (偏黄的)绿 绿
120 绿(纯绿) 绿
150 (偏青的)绿 绿
170 青("aquamint") 无传统名称 不适用
180 "清"(cyan) 无传统名称 不适用
195 蓝(既不偏"清",也不偏紫的蓝色,较浅,因此也可以叫"浅蓝")
210 蓝(靛蓝,但稍浅)
240 蓝(RGB纯蓝/靛蓝)
270 蓝(也是一种靛蓝) "紫"(实际上是错的) 否!
276 蓝-紫(也可以归入靛蓝色系) "紫"(实际上是错的) 否!
280 蓝-紫(也可以归入靛蓝色系) "紫"(实际上是错的) 否!
300 较混乱,有人说是紫,但有的地方说是“品红/洋红” 否!
315 紫-品 较混乱,有人说是紫,但说成“品红/洋红”的频率更高了(甚至有人误称之为"粉色") 否!
325 较混乱,有人说是紫红/品(magenta),但说成“粉色”的频率更高了 否!
330 较混乱,有人说是紫红/品(magenta),但说成“粉色”的频率更高了 否!

  附感觉四原色系统结构说明:
  构拟的模型结构如下(横向为青-品维度,纵向为蓝-黄维度,亮度维度不在此处体现):
  绿—黄—红
  |  |  |
  青—白—品
  |  |  |
  清—蓝—紫

  其中,位于上下左右的四个颜色(黄/蓝/青/品)被称为"感觉四原色",因为它们都是仅在一个色调维度上有刺激,另一个色调维度刺激则为0,是单一刺激色,而非复合刺激色。在这个框架下(注意区别于视锥细胞层面的RGB三原色,这个框架(四原色)是基于更深层次的大脑色觉处理层面),位于四个顶点的,红、绿、"清"、紫这四种颜色,则是典型的复合刺激色。
  根据该模型,可以找到八个特征色(排除黑白灰),分别是红、黄、绿、青、"清"、蓝、紫、品。

  结合表格,我们可以发现:
  1. 传统文化/语言对红-黄-绿区间的颜色称呼较为准确(尤其是红-黄之间甚至细分出了"橙")。
  2. 对绿-青-"清"-蓝区间的颜色缺乏命名(事实上这几个颜色差异不小,理论上应该区分)。
  3. 而对蓝-紫-品-红之间的颜色,虽然存在区分,但区分普遍较混乱,与理论划分差异太大,且明显存在一定规律。
  规律是:命名存在明显"蓝移"现象,即:
  a. "紫色"指代范围往往不是真正的紫色(色相300),而是明显偏蓝,即靛蓝色(如色相270~280的颜色)很容易被误称为"紫色"。
  b. "品红"甚至"粉色"指代范围往往不是真正的品红(色相330),而是明显偏紫,即真正的紫色(色相300)很容易被误称为"品红",偏品的紫色甚至会被误称为"粉色"。

  而这些现象,与传统文化红-黄-绿区间颜色染料较容易获得,普遍缺乏蓝-紫-品区间颜色染料密切相关,青-"清"区间颜色的物质更是极度匮乏和稀有。这种现象,其实明显体现了传统颜色命名存在的典型"经验主义"/"实用主义"倾向,而非"理性主义"/"理想主义"。(PS: 本人就是"INTP"(指"MBTI类型")理性主义者,所以才能如此轻松地说出这种话!哈哈!)

  而刚才提到的这些,正好解释了文章强调的问题,即#FF00FF(紫色)被误称为"品红"的原因。
  传统上由于蓝-紫-品-红区间缺乏明确的颜色词进行命名区分,导致出现命名上的混乱。凡是比蓝色偏紫,哪怕只是偏一丁点的颜色,都会被强行称为"紫色",而非更接近的"蓝色",夸大了"蓝色"和"蓝色,只是偏一丁点紫",这两种本应十分相近的颜色的区别。若是红色含量更多的颜色(即真正的"紫色"),则会被强行称为"品红",而非"紫色",但这种颜色只是红色成分更多,主导成分仍是蓝色,称为"品红"显然是不合理的。
  且由于红色染料比蓝色更常见,凡是介于蓝红之间的颜色(如紫色,品色),都可能会被十分勉强的归入到"红色"范畴,进而导致命名带上"红"字(如品红)。(如果蓝色染料比红色更常见,说不定他俩就归入"蓝色"范畴了,进一步证明这种归派的历史人为性,而非物理必然性)
  (这一点和绿-青-"清"-蓝区间缺乏明确的颜色词进行命名区分是一致的,这一段颜色词的缺乏,导致了青色和"清色"经常被归入"绿色"或"蓝色"范畴,具体取决于该文化绿色染料常见还是蓝色染料常见。如果该文化绿色染料常见,则青色和"清色"会被归入"绿色"范畴,如果该文化蓝色染料常见,则青色和"清色"会被归入"蓝色"范畴。)
  品-红差异和红-黄差异在心理上等距,按这个逻辑,黄色也可以归入到"红色"范畴,但为什么现在并没有归入呢?原因还是传统问题,传统上黄色染料比品色容易获得,使用频繁,导致实用上与红色区分的必要性,因此并未归入"红色"范畴。品色理论上也有与红色区分的必要性,但由于品色染料不易获得,使用少,导致实用上区分需求减弱,进而导致没有单独命名,而只能勉强归入到"红色"范畴。(其实反过来想,如果黄色染料也不易获得,实用上区分需求减弱,进而导致没有单独命名,那么在这种情况下,黄色也完全有理由勉强归入到"红色"范畴。品色和黄色,这俩要么都归入"红色",要么都不归入。因此这里再一次印证了这种不对称归派的历史人为性,而非物理必然性)
  但实际上在大脑感知层面,品色(Magenta)是一种独立的颜色,是感觉四原色之一(具体介绍在这里有提及),不能称为"X红色"。正如黄色也是感觉四原色之一,不是"X红色"。但反过来,在感觉四原色框架下(注意区别于视锥细胞层面的RGB三原色,这个框架(四原色)是基于更深层次的大脑色觉处理层面),红色则是黄色和品色的复合色,可以视作黄色的变体("X黄色")。虽然在RGB框架下,黄色是红色和绿色的复合色,但这只是视锥细胞层面的情况,在大脑层面,视觉信息处理是基于感觉四原色的,此时红色是黄色和品色的复合色
  刚才的逻辑,其实是想说明这一点:因为品色和黄色都是感觉四原色之一,因此无论是品色,还是黄色,都不是"X红色"。如果品色能够被说成"X红色",按照这个逻辑,黄色也应该说成"X红色"。(即要么两者都是"X红色",要么都不是,才合理。这里认为它们都不是"X红色"(包含红色的复合色),而是感觉四原色)
  而紫色在感觉四原色框架下,其实是蓝色和品色的复合色。刚才说了,品色不能被认为是一种红色,那么紫色作为比品色更偏蓝的颜色,就更没有理由认为是"X红色"了,叫作"X蓝色"反而更合理!

总结:
  HTML中紫色RGB为(128, 0, 128) (#800080 对应RGB色相300°),是一种深紫色,如果将明度提高,变成(255, 0, 255) (#FF00FF 对应RGB色相300°),则得到偏亮的紫色,也可以叫紫色(Purple)。#FF00FF与HTML中的紫色(#800080)具有相同的色相,因此属于紫色的一种。如果非要将两者区分,则可以将#FF00FF称为「亮紫」(Light Purple)。在一般情况下,#FF00FF完全可以称为紫色(Purple),没有任何问题。
  而品红(Magenta)最初的含义是一种化学染料的名称,其名称源于意大利一次独立战争(1859年)的地名,这种染料呈紫红色,也就是现在印刷业中常用的CMYK系统中的颜色之一,其色值为(228, 0, 127) (#E4007F 对应RGB色相327°),是一种紫红色。而有的人把亮紫色称为"品红",但是事实上这种所谓的"品红"与最初含义的品红,也就是和化学和印刷业中的品红相去甚远,有明显的差异,并非真正意义上的品红,实际上是一种误称
  此外,有的地方把#FF00FF称为Fuchsia也是一种误称,因为Fuchsia对应的是紫红色,并非#FF00FF(紫色,Purple)。
  所以,真正意义上的Purple#FF00FFMagenta#E4007F这种把与#800080(深紫色,网页紫色)位于同一色相,只是明度区别的#FF00FF称为"品红",搞"双重标准",将两者区别对待的说法,荒谬至极,毫无根据,实属无稽之谈。

posted @ 2020-02-19 21:49  固态二氧化碳  阅读(5348)  评论(0)    收藏  举报