成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

FreeDOS 的 16 種顏色的由來(lái)

系統(tǒng) Linux
為什么文本只能使用這些有限的顏色顯示,為什么 FreeDOS 使用這些顏色和陰影,而不是其他顏色?答案就像技術(shù)中的許多事情一樣,歷史原因。

如果你仔細(xì)了解過(guò) FreeDOS,你可能已經(jīng)注意到文本使用有限的顏色范圍 —— 16 種文本顏色和 8 種背景顏色。這類似于 Linux 顯示文本顏色的方式 —— 你或許能夠在 Linux 終端中更改 文本顏色,但你仍然只能使用 16 種文本顏色和 8 種背景顏色。

DOS 文本有 16 種顏色和 8 種背景顏色(吉姆·霍爾,CC-BY SA 4.0)

DOS 文本有 16 種顏色和 8 種背景顏色(吉姆·霍爾,??CC-BY SA 4.0??

為什么文本只能使用這些有限的顏色顯示,為什么 FreeDOS 使用這些顏色和陰影,而不是其他顏色?

答案就像技術(shù)中的許多事情一樣,歷史原因。

PC 色彩的由來(lái)

為了解釋為什么文本只有 16 種顏色,讓我給你講一個(gè)關(guān)于第一臺(tái) IBM 個(gè)人計(jì)算機(jī)的故事。這個(gè)故事的部分內(nèi)容可能有些杜撰,但基本內(nèi)容已經(jīng)足夠接近。

IBM 于 1981 年發(fā)布了個(gè)人計(jì)算機(jī)Personal Computer 5150(“IBM PC”)。該 PC 使用了一個(gè)簡(jiǎn)單的監(jiān)視器屏幕,以綠色顯示文本。由于此顯示器僅適用于一種顏色,因此被稱為 單色monochrome(“IBM 5151 單色顯示器”,搭載 IBM 單色顯示適配器Monochrome Display Adapter,即 MDA)。

同年,IBM 發(fā)布了 PC 的更新版本,帶來(lái)了驚人的技術(shù)成就 —— 顏色!新的 IBM 5153 彩色顯示器依賴于新的 IBM 彩色圖形適配器Color Graphics Adapter(CGA)。正是由于這個(gè)原始的 CGA,所有的 DOS 文本都繼承了它們的顏色。

但在我們討論那一部分之前,我們首先需要了解一些關(guān)于顏色的東西。當(dāng)我們談?wù)撚?jì)算機(jī)屏幕上的顏色時(shí),我們談?wù)摰氖腔旌?nbsp;三原色(紅色、綠色和藍(lán)色)的不同值。你可以將不同級(jí)別(“亮度”)的紅光、綠光和藍(lán)光混合在一起,以創(chuàng)建幾乎任何顏色。混合紅色和藍(lán)色光,你會(huì)得到洋紅色。混合藍(lán)色和綠色,你會(huì)得到青色或淺綠色。均勻地混合所有顏色,你會(huì)得到白色。沒(méi)有任何淺色,你會(huì)看到黑色(沒(méi)有顏色)。

混合紅色、綠色和藍(lán)色光以獲得不同的顏色(吉姆·霍爾,CC-BY SA 4.0)

混合紅色、綠色和藍(lán)色光以獲得不同的顏色(吉姆·霍爾,??CC-BY SA 4.0??

IBM 5153 彩色顯示器通過(guò)在陰極射線管cathode ray tube(CRT)上點(diǎn)亮微小的紅色、綠色和藍(lán)色光點(diǎn)來(lái)向用戶呈現(xiàn)顏色。這些小點(diǎn)排列得非常緊密,并以紅色、綠色和藍(lán)色的三色點(diǎn)組成一個(gè)“像素”的模式排列。通過(guò)控制同時(shí)點(diǎn)亮哪些熒光點(diǎn),IBM 5153 彩色顯示器可以顯示不同顏色的像素。

每個(gè)紅色、綠色和藍(lán)色三元組都是一個(gè)像素(吉姆·霍爾,CC-BY SA 4.0)

每個(gè)紅色、綠色和藍(lán)色三元組都是一個(gè)像素(吉姆·霍爾,??CC-BY SA 4.0??

順便說(shuō)一句,即使是現(xiàn)代顯示器也使用這種紅色、綠色和藍(lán)色點(diǎn)的組合來(lái)表示顏色。現(xiàn)代計(jì)算機(jī)的不同之處在于,每個(gè)像素都使用紅色、綠色和藍(lán)色 LED 燈(通常并排排列),而不是微小的熒光點(diǎn)。計(jì)算機(jī)可以打開(kāi)或關(guān)閉每個(gè) LED 燈,以混合每個(gè)像素中的紅色、綠色和藍(lán)色。

每個(gè)紅色、綠色和藍(lán)色三元組都是一個(gè)像素(吉姆·霍爾,CC-BY SA 4.0)

每個(gè)紅色、綠色和藍(lán)色三元組都是一個(gè)像素(吉姆·霍爾,??CC-BY SA 4.0??

定義 CGA 顏色

IBM 工程師意識(shí)到他們可以通過(guò)混合紅色、綠色和藍(lán)色像素來(lái)顯示多種顏色。在最簡(jiǎn)單的情況下,你可以假設(shè)單個(gè)像素中的每個(gè)紅色、綠色和藍(lán)色點(diǎn)要么“開(kāi)”,要么“關(guān)”。正如任何計(jì)算機(jī)程序員都會(huì)告訴你的那樣,你可以將“開(kāi)”和“關(guān)”表示為二進(jìn)制 —— 1(1 = 開(kāi))和 0(0 = 關(guān))。

用 1 或 0 表示紅色、綠色和藍(lán)色意味著你可以組合多達(dá)八種顏色,從 000(紅色、綠色和藍(lán)色都關(guān)閉)到 111(紅色、綠色和藍(lán)色都打開(kāi))。請(qǐng)注意,位模式類似于“RGB”,因此 RGB=001 是藍(lán)色的(只有藍(lán)色是打開(kāi)的),RGB=011 是青色的(綠色和藍(lán)色都打開(kāi)了):

顏色

代碼

名稱

000

001

藍(lán)

010

011

100

101

洋紅

110

111

但這只是最簡(jiǎn)單的情況。一位特別聰明的 IBM 工程師意識(shí)到,只需再添加一點(diǎn),你就可以將顏色數(shù)量從 8 種顏色增加到 16 種。因此,我們可以使用像 iRGB 這樣的位模式,而不是像 RGB 這樣的位模式。我們將把這個(gè)額外的“i”位稱為“強(qiáng)度”位,因?yàn)槿绻覀儗ⅰ皬?qiáng)度”位設(shè)置為 1(開(kāi)),那么我們將在全亮度下點(diǎn)亮紅色、綠色和藍(lán)色;如果“強(qiáng)度”位為 0(關(guān)閉),我們可以使用一些中級(jí)亮度。

有了這個(gè)簡(jiǎn)單的修復(fù)程序,現(xiàn)在 CGA 可以顯示 16 種顏色!為了簡(jiǎn)單起見(jiàn),IBM 工程師將高強(qiáng)度顏色稱為常規(guī)顏色名稱的“明亮”版本。因此,“紅色”與“亮紅色”配對(duì),“洋紅色”與“亮洋紅色”配對(duì)。

顏色

代碼

名稱

顏色

代碼

名稱

0000

1000

亮黑

0001

藍(lán)

1001

亮藍(lán)

0010

1010

亮綠

0011

1011

亮青

0100

1100

亮紅

0101

洋紅

1101

亮洋紅

0110

1110

亮黃

0111

1111

亮白

哦不,等等!這實(shí)際上不是十六種顏色。如果你注意到 iRGB=0000(黑色)和 iRGB=1000(亮黑色),它們都是相同的 黑色。沒(méi)有顏色可以“亮”,所以它們都是普通的黑色。這意味著我們只有 15 種顏色,而不是我們希望的 16 種顏色。

但 IBM 有聰明的工程師為他們工作,他們意識(shí)到如何解決這個(gè)問(wèn)題以獲得 16 種顏色。IBM 實(shí)際上沒(méi)有實(shí)現(xiàn)直接的 RGB 到 iRGB,而是實(shí)現(xiàn)了  iRGB 方案。隨著這一變化,IBM
為每個(gè)光點(diǎn)設(shè)置了四個(gè)亮度級(jí)別:完全關(guān)閉、三分之一亮度、三分之二亮度和全亮度。如果“亮度”位被關(guān)閉,那么每個(gè)紅色、綠色和藍(lán)色光點(diǎn)將以三分之二的亮度點(diǎn)亮。如果你打開(kāi)“亮度”位,RGB
顏色中的所有 0 都將以三分之一的亮度點(diǎn)亮,而所有 1 都將以全亮度點(diǎn)亮。

讓我用另一種方式向你描述這一點(diǎn),使用 Web 顏色代碼表示。如果你熟悉 HTML 顏色,你可能知道你可以使用 ??#RGB?? 表示顏色,其中 RGB 表示紅色、綠色和藍(lán)色值的組合,每個(gè)值都在十六進(jìn)制值 0 到 F 之間。因此,使用 IBM 修改后的 iRGB 定義,iRGB=0001 是 #00a(藍(lán)色),iRGB=1001 是 #55f(亮藍(lán)色),因?yàn)閷?duì)于高亮度顏色,RGB=001 中的所有零點(diǎn)都以三分之一的亮度點(diǎn)亮(0 到 F 刻度上的“5”左右),RGB=001 中的所有零點(diǎn)都以三分之二的亮度點(diǎn)亮(0 到 F刻度上的“A”)。

顏色

代碼

名稱

顏色

代碼

名稱

0000

1000

亮黑

0001

藍(lán)

1001

亮藍(lán)

0010

1010

亮綠

0011

1011

亮青

0100

1100

亮紅

0101

洋紅

1101

亮洋紅

0110

1110

亮黃

0111

1111

亮白

有了這些顏色,我們終于完成了!我們擁有從 iRGB=0000(黑色)到 iRGB=1111(亮白色)以及介于兩者之間的所有顏色的全光譜。就像彩虹般的顏色,這很漂亮。

除了……不,等等,這里有問(wèn)題!我們實(shí)際上還不能復(fù)制彩虹的所有顏色。我們?cè)谛W(xué)學(xué)到的方便的助記符是
ROYGBIV,它可以幫助我們記住彩虹的顏色有紅色、橙色、黃色、綠色、藍(lán)色、靛藍(lán)和紫色。我們修改后的 iRGB
配色方案包括紅色、黃色、綠色和藍(lán)色——我們可以將其“偽造”為靛藍(lán)和紫色,但是我們?nèi)鄙俪壬T饬耍?/p>

一條美麗的彩虹——不幸的是它含有橙色。(Pawe? Fija?kowski,公共)

一條美麗的彩虹——不幸的是它含有橙色。(??Pawe? Fija?kowski???,公共)

為了解決這個(gè)問(wèn)題,聰明的 IBM 工程師對(duì) RGB=110 做了最后的修復(fù)。高強(qiáng)度顏色(iRGB=1110)以全亮度點(diǎn)亮紅色和綠色熒光粉點(diǎn)以產(chǎn)生黃色,但是在低亮度顏色(iRGB=0110)下,他們以三分之二的亮度點(diǎn)亮紅色,以三分之一的亮度點(diǎn)亮綠色。這將 iRGB=0110 變成了橙色——盡管它后來(lái)被稱為“棕色”,因?yàn)?IBM 不得不在某處弄亂標(biāo)準(zhǔn)名稱。

顏色

代碼

名稱

顏色

代碼

名稱

0000

1000

亮黑

0001

藍(lán)

1001

亮藍(lán)

0010

1010

亮綠

0011

1011

亮青

0100

1100

亮紅

0101

洋紅

1101

亮洋紅

0110

1110

0111

1111

亮白

這就是 CGA 以及擴(kuò)展的 DOS 獲得十六種顏色的方式!如果你好奇,這也是為什么會(huì)有“亮黑色”的原因,即使它只是一種灰色陰影。

表示顏色(位和字節(jié))

但是你可能想知道:為什么 DOS 可以顯示 16 種文本顏色,卻只能顯示 8 種背景顏色?為此,我們需要快速了解計(jì)算機(jī)如何將顏色信息傳遞給 CGA 卡。

簡(jiǎn)而言之,CGA 卡希望將每個(gè)字符的文本顏色和背景顏色編碼在一個(gè)字節(jié)數(shù)據(jù)包中,一共八位。那么八位是從哪里來(lái)的呢?

我們剛剛了解了 iRGB(四位)如何生成十六種顏色。文本顏色使用 iRGB ,四位,背景顏色僅限于八種低強(qiáng)度顏色(RGB,三位),加起來(lái)只有七位。丟失的第八位在哪里?

最后一個(gè)位可能是為 DOS 時(shí)代最重要的用戶界面元素保留的 —— 閃爍文本。雖然閃爍的文本在如今可能很煩人,但在整個(gè) 1980 年代初期,閃爍的文本是表示錯(cuò)誤消息等關(guān)鍵信息的友好方式。

將這個(gè)“閃爍”位添加到三個(gè)背景顏色位(RGB)和四個(gè)文本顏色位(iRGB)中會(huì)產(chǎn)生八個(gè)位或一個(gè)字節(jié)!計(jì)算機(jī)喜歡以完整字節(jié)為單位進(jìn)行計(jì)數(shù),這使其成為將顏色(和閃爍)信息傳輸?shù)接?jì)算機(jī)的便捷方式。

因此,表示顏色(和閃爍)的完整字節(jié)是 ??Bbbbffff??,其中 ??ffff?? 是文本顏色的 iRGB 位模式(從 0 到 15),??bbb?? 是低強(qiáng)度的 RGB 位模式背景顏色(從 0 到 7),而 ??B?? 是“閃爍”位。

十六種文本顏色和八種背景顏色的限制一直持續(xù)到今天。當(dāng)然,DOS 堅(jiān)持使用這種顏色組合,但即使是像 GNOME 終端這樣的 Linux 終端仿真器也仍然受限于 16 種文本顏色和 8 種背景顏色。當(dāng)然,Linux 終端可能允許你更改使用的特定顏色,但你仍然限于十六種文本顏色和八種背景顏色。為此,你要感謝 DOS 和最初的 IBM PC。別客氣!

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2012-09-28 10:31:42

微軟LogoWindows

2024-04-19 13:09:26

Flutter樣式TextSpan

2021-06-16 12:57:27

FreeDOS

2021-03-20 22:00:00

FreeDOS開(kāi)源

2010-08-06 13:53:12

RIP協(xié)議

2021-12-20 09:29:42

LinuxFreeDOS命令

2021-12-08 15:11:51

FreeDOSLinux

2009-08-18 10:48:25

C#事件

2022-07-20 21:03:05

FreeDOS文本編輯器

2010-07-02 12:02:11

eMule協(xié)議

2010-07-05 10:38:49

網(wǎng)絡(luò)層次協(xié)議

2021-03-16 12:42:42

FreeDOS開(kāi)源

2009-09-22 14:40:58

中國(guó)之窗

2009-07-01 09:56:00

運(yùn)維管理IT資源

2012-09-19 13:48:33

pNFS文件系統(tǒng)

2009-02-18 10:21:00

IP電話語(yǔ)音通信

2021-12-13 12:00:08

FreeDOSLinux

2012-09-28 10:45:33

微軟Logo

2010-06-23 14:20:06

eMule協(xié)議

2010-12-27 10:48:10

VirtualboxFreedos
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲欧美一区二区三区在线 | 欧美精品福利 | 99爱视频 | 免费一级淫片aaa片毛片a级 | 国产精品永久 | 日韩欧美中文字幕在线观看 | 精品久久久久久亚洲综合网站 | 亚洲视频在线免费 | 三级av网址 | 日日夜夜精品免费视频 | 亚洲精品视频网站在线观看 | 亚洲精品一区中文字幕乱码 | www.国产.com| 中文字幕免费 | 欧美13videosex性极品 | 播放一级黄色片 | 91亚洲一区| 男人av在线播放 | 欧美一区免费在线观看 | 国产精品久久 | 麻豆视频在线免费观看 | 免费国产视频在线观看 | 日韩精品久久一区二区三区 | 日韩一级免费大片 | 亚洲国产一区二区在线 | 国产精品久久久久久久久久免费看 | 久久久久久久久久久久91 | 精品国产1区2区3区 一区二区手机在线 | 拍拍无遮挡人做人爱视频免费观看 | 伊人一区 | 日韩在线免费播放 | 亚洲九色| 色视频欧美 | 91精品国产92 | 久久久性 | 成人久久网 | 国产精品久久久久久久一区探花 | 国产精品久久久久久久久图文区 | 午夜天堂精品久久久久 | 精品国产伦一区二区三区观看体验 | 欧美在线天堂 |