精華區beta PCman 關於我們 聯絡資訊
近日來不少網友在討論 ANSI 色彩碼的問題,我在此跟大家做些說明 先看一段網路上節錄的說明,我後面在補上我的說明 ========================================================================== 以下節錄自 http://www.dee.ufcg.edu.br/~rrbrandt/tools/ansi.html ESC[Ps;...;Psm Set Graphics Mode: Calls the graphics functions specified by the following values. These specified functions remain active until the next occurrence of this escape sequence. Graphics mode changes the colors and attributes of text (such as bold and underline) displayed on the screen. Text attributes 0 All attributes off 1 Bold on 4 Underscore (on monochrome display adapter only) 5 Blink on 7 Reverse video on 8 Concealed on Foreground colors 30 Black 31 Red 32 Green 33 Yellow 34 Blue 35 Magenta 36 Cyan 37 White Background colors 40 Black 41 Red 42 Green 43 Yellow 44 Blue 45 Magenta 46 Cyan 47 White Parameters 30 through 47 meet the ISO 6429 standard. ========================================================================== 請注意到我標上黃字的兩行,^[[0m 就是清除所有文字色彩等各種屬性 一般來說也就是預設黑底灰字,而 ^[[m 在不使用參數的情況下形同 ^[[0m 也就是清除所有色彩,所以應該回到黑底灰字才是正確的,而控制碼參數 1 在單色螢幕上顯示為粗體,彩色螢幕上則是"高亮度",^[[m還原成灰色字體之後 加上 ^[[1m 高亮度,則灰色應改變成亮白色,這樣的色碼寫法我認為是正確的 很顯然 ^[[m^[[1m 會比 ^[[m^[[1;37;40m 來的精簡,所以 PCMan 刻意設計成如此 至於其他軟體為何會解讀成其他色彩,除非是我誤解了標準,否則不需要列入考慮 另外請注意到第二個標註黃字的地方,事實上,底線支援並非標準,注意原文 monochrome是指單色的意思,也就是說底線本來只有在單色顯示的螢幕之下才支援 底線本來是沒有和彩色同時使用的,所以不要再說PCMan破壞標準不支援底線功能 因為底線本來就不是這樣用,而且另一分英文文件指出 (不過非正式官方文件) ^[[4m控制碼是underscore "if available",如果按照這樣的說法,事實上 底線支援本來就不是必要的要求,而且本來底線就不是和色彩混用的,更不是當今的用法 說實話 PCMan 並沒有支援單色模式,但現今BBS也沒人在用單色,所以不構成問題 除了這點瑕疵,不支援底線其實並不算破壞標準。另外過去有網友質疑為何 PCMan 沒有支援 KKman 可以使用的 ^[[38m 控制碼,大家可以自己看一下,這絕對不是 PCMan 的問題, ^[[38m 在KKman 支援成什麼我不管,但是很肯定色碼裡面本來按照 規定就根本沒有 38 這種東西,更沒有"不支援"的問題,因為本來就沒這東西。 以上簡短說明解答使用者疑問,並希望幫助各位更了解 ANS彩色碼,如有錯敬請指正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.226.102.225 ※ 編輯: HZYSoft 來自: 61.226.102.225 (07/03 00:03)
hjdmllmedbu:kkman 38 是什麼東西? 218.160.38.49 07/03
commiserate:kkman的38好像是隨機出現的顏色... 220.136.160.240 07/03