<
>
20px - +
wrap
zh en
-
══════════════════════════════════════ ◎《鸣蝉ASCII Art入门 卷四》 色 彩 缤 纷 ════════════════════════════════2004.07.19 Outline:Ⅰ颜色码 Ⅱ ASCII色盘 Ⅲ 配色理论 Ⅳ 色码精简 Origin from: Tolo Note ──────╮ Ⅰ 颜 色 码 ╰──────╯ 目前我们已经可以利用许多ASCII特殊符号,堆砌出各式各样的文字与图形, 不过,这还是不够的,若要让它们变得更漂亮,必须学会如何替它们 著色前∶ ◇── ──◇ │ │ │ ◢ ︿︿ │ ◥◣ ▋ ◢◤ ︿︿ ◥◣ ▋◢◤┐┐┌┐┐┌ ┬ ┌┬┐ ◥◣▊◤ ╲ │ ││ │ │││ ╳ └└ ┴ └┘ ┴ ┘ └ ◢▉◥◣ ┐ ┐ ◢◤▉ ◥◣ ── │ │ ◢◤ ▉ ◥◣ ┴ ┴ ◤ █ ▍ ╱ █◢██◣ ● ╱ │ █ ██▊ ╲╱ │ │ █ ██▊ 台大资管11届班板 │ ◇── ──◇ 著色后∶ ◇── ──◇ │ │ ︿︿ ◥◣ ?芍? ︿︿ ◥◣ ◢??┐┐┌┐┐┌ ┬ ┌┬┐ ◥◣ ╲ │ ││ │ │││ ?? └└ ┴ └┘ ┴ ┘ └ ◥◣ ┐ ┐ ◢◤ ◥?? ── │ │ ◢◤ ?炎? ┴ ┴ ◢?i█◣ ?i█▊ ╲╱ ?i█?o 台大资管11届班板 ◇── ──◇ 如何!加上颜色感觉完全不一样了,对吧! :) 那要怎么上色呢?我们使用的工具叫做∶颜色码。 它的形式大概是∶〔 *[1;36mcyan*[m 〕;然后会有这样的效果∶〔 cyan 〕。 ◆ ASCII核心颜色码∶〔 *[m 〕 请注意,这个 *[m 并不是直接敲〔Shift + 8〕、〔[〕与〔m〕出现的, 而是用〔Ctrl + c〕产生。按了〔Ctrl + c〕,就会出现 *[m 这样的零件。 // 大部分的BBS站都是如此,包括鸣蝉小站与批踢踢实业坊。 记得,在 *[m 右边的文字,会受到该 *[m 所下的指令影响。 §例如∶*[m影响区域(一直延伸) →→ 现在,以step by step的方式,实地操作一次简单的颜色码∶ 执行动作 萤幕所见的结果 (1) 键入欲实验的文字 highlight ordinary (2) 在highlight前后各按一次〔Ctrl + c〕 *[mhighlight*[m ordinary (3) 在前面的*[m中,多加数字1,摆在[与m之间 *[1mhighlight*[m ordinary (4) 请按〔Ctrl + v〕检验结果 highlight ordinary 有没有发现highlight一字变亮了? 当文章贴出去之后,别人所看到的,是(4)的结果, 也就是按下〔Ctrl + v〕切换模式之后看到的画面。 同样地,再按一次〔Ctrl + v〕,会切换回(3)所看到的样子。 一般人在编辑文章的时候,都是在(3)的模式下编辑, 需要检查颜色码效果的时候,才用〔Ctrl + v〕暂时切换阅读模式。 很简单吧~这就是颜色码的运作方式,前面的 *[1m 让它右边的文字变亮, 而后面的 *[m 则让它右边的文字恢复原来的亮度。 ──────╮ Ⅱ ASCII色盘 ╰──────╯ 之前在 *[m 填入的1代表高亮度的意思,其他指令也遵循类似的模式。 ◆ 特殊性质指令 ┌─────────────────────┐ │指令 功能 原始码 呈现效果 ├─────────────────────┤ │ 0 无效果 *[0m文字★*[m 文字★ │ // 预设值∶无效果 │ 1 高亮度 *[1m文字★*[m 文字★ │ 4 底线 *[4m文字★*[m 文字★// 有些软体不支援 │ 5 闪烁 *[5m文字★*[m 文字★ │ 7 反白 *[7m文字★*[m 文字★ │ 8 黑字 *[8m文字★*[m 文字★ └─────────────────────┘ ◆ 前景颜色指令 ┌─────────────────────┐ │指令 前景颜色 原始码 呈现效果 ├─────────────────────┤ │ 30 黑色 *[30m文字★*[m 文字★ │ 31 红棕色 *[31m文字★*[m 文字★ │ 32 墨绿色 *[32m文字★*[m 文字★ │ 33 土黄色 *[33m文字★*[m 文字★ │ 34 靛色 *[34m文字★*[m 文字★ │ 35 深紫色 *[35m文字★*[m 文字★ │ 36 暗青色 *[36m文字★*[m 文字★ │ 37 白色 *[37m文字★*[m 文字★ │ // 预设值;白字 └─────────────────────┘ ◆ 背景颜色指令 ┌─────────────────────┐ │指令 背景颜色 原始码 呈现效果 ├─────────────────────┤ │ 40 黑色 *[40m文字★*[m 文字★ │ // 预设值;黑底 │ 41 红棕色 *[41m文字★*[m 文字★ │ 42 翠绿色 *[42m文字★*[m 文字★ │ 43 土黄色 *[43m文字★*[m 文字★ │ 44 蓝色 *[44m文字★*[m 文字★ │ 45 紫色 *[45m文字★*[m 文字★ │ 46 青色 *[46m文字★*[m 文字★ │ 47 白色 *[47m文字★*[m 文字★ │ 48 亮红色 *[48m文字★*[m 文字★ │ // 感觉比较特别的指令 └─────────────────────┘ ◆ 组合指令 上述颜色码,可以多种并存(但前景、背景至多各选一种) 如果要对同一文字下多重指令,指令与指令之间以semicolon分开, §例如∶〔 *[1;5;35;44mviolet*[m 〕 变成 〔 violet 于是,我们可以配出一套〔高亮度〕的前景颜色∶ ┌─────────────────────┐ │指令 前景颜色 原始码 呈现效果 ├─────────────────────┤ │1;30 灰色 *[1;30m文字★*[m 文字★ │1;31 鲜红色 *[1;31m文字★*[m 文字★ │1;32 浅绿色 *[1;32m文字★*[m 文字★ │1;33 亮黄色 *[1;33m文字★*[m 文字★ │1;34 蓝色 *[1;34m文字★*[m 文字★ │1;35 紫色 *[1;35m文字★*[m 文字★ │1;36 浅蓝色 *[1;36m文字★*[m 文字★ │1;37 亮白色 *[1;37m文字★*[m 文字★ │1;38 ?? *[1;38m文字★*[m 文字★// 在批踢踢实业坊 │1;39 ?? *[1;39m文字★*[m 文字★// 这两个是诡谲不定的颜色 └─────────────────────┘ ASCII色盘在此介绍完毕,以下统整所有可用的颜色∶ 30 31 32 33 34 35 36 37 ┌───────────────┐ 0 █│ // 普通亮度系列 │ │ 1// 高亮度系列 └───────────────┘ ──────╮ Ⅲ 配色理论 ╰──────╯ 谈到配色,在这边倒不是要说什么深奥的东西,我也没那个本事。 ^^" 画ASCII图,我们用的不是水彩或广告颜料,只是不出十余支的彩色笔而已。 所以不需要知道什么 + = 之类的调色公式。 在此,笔者想分享一些配色经验∶ 让初学者能够在适当的地方,选择适当的颜色,达到想要的效果。 ◆ 强调文字 文字,不像一些实心的几何图形 〔● ◆ ★〕, 笔划稍微少一点的字,它们在一个全形格内,所占空间的比例不大。 如果文字本身的线条不够明亮,会让人有看不清楚的感觉。 §例如∶ 这行文字黯淡 很黯淡 实在很黯淡 这样的暗色用多了不好,读者看起来很辛苦。 所以尽量避免在文字上面使用暗色,除非是刻意要这么做。 底线强调法 顾名思义,就是在文字底下划线。平常看书的时候,很多人都这样画重点吧。 这种强调法适用于稍长的句子,或是一个段落, 可惜的是,有些BBS观看软体无法呈现这样的效果。 §例如∶ 这段文字很重要,最好给我牢牢记住! 前景强调法 如果要强调一句话里面的其中几个字,高亮度前景色系列内的∶ 亮黄浅绿浅蓝鲜红亮白紫色皆是不错的选择。 只有蓝色的亮度仍不够。(灰色呢?它不算啦,高亮度的黑色? XD) 这几种颜色何者较好?我想应该没有定论,因人喜好而异, 可是选择不同的颜色,给人的感觉、气氛都不太一样。 背景强调法 // 包括反白强调法 另外,背景强调法也是一种可行之道,就像用萤光笔划重点一样。 笔者比较推荐的〔萤光笔〕是∶蓝色 红棕 紫色 反白 若要使用背景强调法,建议前景采用高亮度(通常是亮白色)。 亮白前景搭配蓝色背景 §比较一下∶ 白色前景搭配蓝色背景 第一行的文字看起来比较清楚,也比较能达到强调的效果。 在这边给个小建议,不管是哪一种强调法, 都不要用太多的高亮度文字,不然的话会让读者觉得刺眼, 假如整个段落都需要强调,用底线强调法比较适合。 闪烁强调法 闪烁对笔者来说,通常是最后一刻才会考虑使用的工具。 虽然它确实有一定的效果在,但是,闪烁的副作用实在太大, 使用稍有不慎,会给人负面的印象。 它适合用在〔最最重要的词〕,这个词最好只有几个字而已。 §例如∶集合时间是 10:00 ,千万不要忘记了! 因为闪烁的频率太慢,每一次的熄灭,都会中断读者的阅读过程, 如果有一串长达数十字的闪烁文字,等读者看完,气恐怕也快岔了。 所以罗!为了读者的灵魂之窗著想,请尽量避免用闪烁, 如果要用闪烁,一定要用在最重要的地方, 最好搭配前景、背景强调法一起使用。 :) // 笔者推荐搭配背景强调法,可以让读者很快地锁定闪烁的位置。 ◆ 文字配色 练习一下,如果遇到这样的文字,你想怎么为它配色呢? ●(1)大内圣殿 公告/申诉/交流 (2)大资管帝国 资管/研究/系队/SA (3)天使小窝 天使个人专区 (4)一定要用功 课程/专题/用功/升学 (5)Super Club 社团/团体/CAMP/班板 (6)食衣住行育乐 娱乐/电脑/生活/资讯 (7)NTU 台大/校内/其他 (N)ew 阅读所有新作品 (S)elect 选择看板 以下是笔者的设计,全用前景色∶ ●(1)大内圣殿 公告/申诉/交流 (2)大资管帝国 资管/研究/系队/SA (3)天使 天使个人专区 (4)一定要用功 课程/专题/用功/升学 (5)Super Club 社团/团体/CAMP/班板 (6)食衣住行育乐 娱乐/电脑/生活/资讯 (7)NTU 台大/校内/其他 (N)ew 阅读所有新作品 (S)elect 选择看板 这样的排法,由上往下看很平顺,因为是大家熟悉的彩虹颜色顺序, 高亮度前景色里面,其中有六个接近彩虹的其中六色,我就照顺序排了。 中间再插入一个特例,利用三种明暗度不同的〔白色〕,营造渐层效果, 别忘了,在黑白世界里,我们有四种颜色可以用哦! // 但是黑色不常用 至于为什么右半边没有染色呢?个人认为, 读者最习惯阅读的依旧是普通的白色,普通白色是最基本的颜色。 适量的颜色可以装饰画面;而颜色用过量,画面就太花了。 ◆ 图形配色 图形配色更难找出什么通则了,已经到艺术创作的层次, ^^ 若勉强要说什么,笔者也只能提供一点点建议。 配色要以整体感作为首要考量,别拘泥于小地方,像是一两块方格的颜色; 读者欣赏一个作品,很少抓它的一个角落,而是用远观的方式看它整体的感觉。 以下我挑了两个色彩用得比较多的作品供大家参考。 ■□■ Λ Λ 小狗霈 □□ ●● Λ lastsleep ■ ■ ■ □■ Λ 走路风Λ Λ AllenHuang^^ ■ ■Λ Λ BlueShiva ***Λ 毕安诺 ■□■ ■ IM Bomberman // 炸弹超人 ■■ ■■ │ETRIS NEXT ╭───╮ ║■■ │ │ ║■■ LEVEL 3 │ ║■■■■■■■■■│ ║■■ ■■ LINES 24 │ │ ║■■■■■■ ╰───╯ ║■■■ ■■■■ SCORES 9300 by AllenHuang ╚══════════╝ // 俄罗斯方块 ──────╮ Ⅳ 色码精简 ╰──────╯ 这段内容或许比较枯燥,但它很重要,所以我并不想遗漏它。 学会精简颜色码,其主要目的∶事半功倍! 知道了捷径之后,就不用花时间绕远路; 既然可以用更便宜的价格买到相同的东西,何乐而不为呢? §例题一 请做出以下效果∶ 鲜红 亮黄 浅蓝 也许有人会用HTML tag的形式去写,像这样∶ *[1;31m鲜红*[m *[1;33m亮黄*[m *[1;36m浅蓝*[m 但是,其实不必那么复杂,这样子就搞定了∶ *[1;31m鲜红 *[33m亮黄 *[36m浅蓝*[m 为什么呢?颜色码是有继承性的, *[33m 虽然只表示了前景颜色, 但是它可以继承左边 *[1;31m 所下的高亮度指令, 同理, *[36m 也继承了 *[1;31m 所下的高亮度指令。 §类似题 请做出以下效果∶ 紫色 闪烁的紫色 HTML tag包夹方式的最复杂写法∶ *[1;35m紫色*[m *[1;5;35m闪烁的紫色*[m 利用继承方式的写法∶ *[1;35m紫色 *[5m闪烁的紫色*[m *[5m 继承了左边的 *[1;35m 两个指令。 §例题二 请做出以下效果∶ 浅绿 墨绿 同样地,我先秀出最复杂的方式∶ *[1;32m浅绿*[m *[32m墨绿*[m 简单的写法∶ *[1;32m浅绿 *[0;32m墨绿*[m 也许读者会问,为什么不是这样写? *[1;32m浅绿 *[0m墨绿*[m 这就要谈到0这个指令了,请不要以为0是〔低亮度〕的意思。 0的作用是将之前所有的〔属性归零〕; 换句话说,0会让之后的文字变成最平凡的黑底白字。 *[0;32m 里面的0,把前面的 *[1;32m 两个指令都挡掉了, 所以若要让后面的颜色变成墨绿色,我们还得再打一次32。 §引 申 0是可以技巧性地不写的,之前所述的∶ *[1;32m浅绿 *[0;32m墨绿*[m 可以修改成∶ *[1;32m浅绿 *[;32m墨绿*[m *[;32m 的分号前面没有数字,系统会自动加进一个0进去。 这样子读者知道 *[m 的用意了吗?是的,它其实就是 *[0m 。 这也难怪 *[m 之右的文字,全部都是黑底白字,彷佛有〔收尾〕的效果。 §整 理 在此整理一个清单,让读者更清楚颜色码继承的方式∶ class 0 special class: reset to default configuration class 1 class 4 class 5 class 7 special class: *[30;47m class 8 special class: *[30;40m class 3X contains 30 31 32 33 34 35 36 37 class 4X contains 40 41 42 43 44 45 46 47 48 除了0,7,8三类之外,不同的类别,可以用继承方式写下去∶ *[32m前景墨绿 *[44m背景蓝色 *[1m前景高亮度 *[4m再加底线 *[5m闪烁吧*[m 呈现效果如下∶ 前景墨绿 背景蓝色 前景高亮度 再加底线 闪烁吧 而在同一个class底下,不算继承,说是〔取代〕比较恰当∶ *[41m背景红棕 *[43m背景土黄 *[42m背景翠绿*[m 这样的写法得到如下的效果∶ 背景红棕 背景土黄 背景翠绿 再谈一下三个special classes吧∶ 就笔者的测试, *[7m 的功用等同于 *[30;47m ; 而 *[8m 的功用则等同于 *[30;40m 。 最后 *[0m ,也就是 *[m ,它将之前所有属性归零,切换到预设值。 所谓的预设值,就是黑底白字∶37与40。 终于结束了 ^^,希望各位知道色码精简的通则之后, 整理原始码的功力可以精进不少, 在每一个BBS站里面,同一行不能打太多字,或多或少都有一定的上限, 如果颜色码太〔肥大〕,按〔Ctrl + v〕之后,会发生画面错乱的状况。 所以,懂得色码精简,可以防止颜色码过长。 ══════════════════════════════════════ ∫ 台大资管鸣蝉小站 90级美工 黄舒淳