BBShelp 版 (精华区)

发信人: trijif (比干湖), 信区: BBShelp
标  题: 日月光华ANSI版短期培训班·第二章
发信站: 哈工大紫丁香 (Thu Jan 25 18:38:08 2007), 站内

















发信人: SpiritRain.bbs@bbs.ustc.edu.cn (妖精雨·日月光华同灿烂·光华驻皖办), 
信区: ASCII.cn
标  题: 日月光华ANSI版短期培训班·第二章
发信站: 瀚海星云 (Wed Jan 24 19:14:21 2007)
转信站: NEWSMTH!news.newsmth.net!bbsnews.sdu.edu.cn!USTC

───────────────────────────────────────
              __                                                    ___       
            ╱█  __  __  ______  ______                          ╱∠-╲     
          ╱__█  █  █  █__ ̄   ̄█ ̄                         /╱︵╲\\    
      __╱   ̄█  █╲█  ▁  █  __█__                        (╱⌒  \\│   
       ̄       ̄   ̄   ̄   ̄ ̄ ̄   ̄ ̄ ̄                       ╱_ /  _)_/    
            日月光华ANSI版短期培训班                           /__   /__      
                                                               ▏  ╱/╱      
                                                      ____    /▏╱╱ ╲      
                                                    ╱◣●\  /\︶╱     \     
    第 二 章:   控制码解说,颜色的搭配             /◆ _  / │ ~╲      │    
                                                 ▕▲ ╰)/─│ ☉│  │ │    
                                                 ▕◢  ^ \─│   │  │ │    
    主讲教师:  Spirit                             ╲▼■/  │ ☉│  │_│    
    时间安排:  2007年01月24日                       ▔▔   │   │   | |     
    当班教师:  legendspirit,Spirit,mote等                │  ︵___/ \_   
                                                            │ (~──||||-'  
───────────────────────────────────────

──|基本知识|────────────────────────────────

  一  什么是ANSI转义序列                                                      

      ANSI转义序列,都是以一个ASCII 码27号字符开始,该字符在firebird系统下    
      的输入方式是连按两下ESC(水木的系统也是这样),  这时一般会出现一个*号,   
      不过它与直接通过Shift+8输入的*号不同,这实际上是一个控制字符(ASCII码    
      27号字符),这里要称赞一下水木,控制符用了黄颜色的*,这样即使跟普通的    
      *号同时出现也不会混淆了。                                               

      ANSI转义序列是区分大小写的,后面我们会详细介绍这一点。                  

      在编写文章时连按两下ESC ,看到一个*号后,接着输入“[31m暗红”(不要输    
      入那两个引号),现在应该是“*[31m暗红”了,按一下ESC再按一下C键,就能    
      看见这样的效果:暗红。字的颜色与其他未加控制符的有所不同,其实我们有    
      很多可以设置的效果,后面将用列表形式给出。                              

      发文时按ESC-C可以预览效果,大多数情况下看到的和发表出来的实际效果是    
      一样的,不过ESC-C只能看当前一屏(23行)内的效果。                        

────────────────────────────────────|⑴|─

──|基本知识|────────────────────────────────

  二  设置显示属性                                                            

      显示属性是最常用的一个ANSI控制,可设置的项目包括                        
      ◆ 前景色(文本颜色)                                                     
      ◆ 背景色                                                               
      ◆ 高亮状态的设置                                                       
      ◆ 文本下划线                                                           
      ◆ 闪烁文本                                                             
      ◆ 反显                                                                 

      BBS上我们可以设置的颜色共有16种,其中8种低亮颜色,8种高亮颜色。         

      为避免其他方面造成的影响,请大家先把终端软件的默认高亮等的设置关掉。    

      cterm:编辑>>系统设置>>高级,确认没选上总是高亮                         
      fterm:选项>>参数设置,确认没有选上默认高亮                             
      sterm:选项>>当前连接设置>>远程登录设置>>外观,确认没选上总是高亮       

────────────────────────────────────|⑵|─

──|基本知识|────────────────────────────────

  三  色彩属性                    |颜色|前景代码|背景代码|背景效果|256色 色值|
                                  |══|════|════|════|═════|
      BBS上有8种颜色可用,分别为:|黑色| *[0;30m|   *[40m|▕▔▔▏|(00,00,00)|
      黑,红,绿,黄,蓝,紫,靛,白     |灰色| *[1;30m|  不可用|  ▔▔  |(80,80,80)|
      由于字符前景有亮和暗的区别,|暗红| *[0;31m|   *[41m|▕▔▔▏|(80,00,00)|
      共有16种不同的前景色,背景  |亮红| *[1;31m|  不可用|  ▔▔  |(FF,00,00)|
      色只允许暗色,因此只有8种。 |暗绿| *[0;32m|   *[42m|▕▔▔▏|(00,80,00)|
                                  |亮绿| *[1;32m|  不可用|  ▔▔  |(00,FF,00)|
  四  色彩代码                    |暗黄| *[0;33m|   *[43m|▕▔▔▏|(80,80,00)|
                                  |亮黄| *[1;33m|  不可用|  ▔▔  |(FF,FF,00)|
      *[0m:关闭各显示属性        |暗蓝| *[0;34m|   *[44m|▕▔▔▏|(00,00,80)|
      *[1m:高亮                  |亮蓝| *[1;34m|  不可用|  ▔▔  |(00,00,FF)|
      *[4m:下划线                |暗紫| *[0;35m|   *[45m|▕▔▔▏|(80,00,80)|
      *[5m:闪烁                  |亮紫| *[1;35m|  不可用|  ▔▔  |(FF,00,FF)|
      *[7m:反显                  |暗靛| *[0;36m|   *[46m|▕▔▔▏|(00,80,80)|
      其余色彩代码见右表,要说明  |亮靛| *[1;36m|  不可用|  ▔▔  |(00,FF,FF)|
      的是,*[m 和*[0m功能基本类  |暗白| *[0;37m|   *[47m|▕▔▔▏|(C0,C0,C0)|
      似,具体区别下一章会谈到。  |亮白| *[1;37m|  不可用|  ▔▔  |(FF,FF,FF)|
────────────────────────────────────|⑶|─

──|基本知识|────────────────────────────────

  五  代码简化                                                                

      一般来说BBS里面一行代码的长度最多254个字符(一个中文字算两个字符),对    
      于活动看板等的,可能还有更严格的限制,允许的代码长度更短。因此,代码    
      简化,去除不必要的代码,对于光华当前系统有着较大的作用。                

      我们看一个例子,例,按照先前所说可表示为*[1m*[5m*[36m*[44m例*[0m,这    
      样就需要占24个字节,我们可以这样简化:*[1;5;36;44m例*[0m,这样就只占    
      18个字节。控制符之间可以用“;”相互连接,最后只用一个“m”结尾,碰到    
      *[31;32;33;42;45;44m这样重复出现前景和背景的情况,我们只看同一类型最    
      后出现的控制符,也就是*[33;44m,先出现的效果会被后出现的覆盖。          

  六  规范代码                                                                

      对于代码的规范,最基本的原则是保证代码的通用性,各种代码尤其是下划线    
      和反色,在不同浏览终端的显示大为不同,因此要尽量避免使用。而闪烁要避    
      大面积的使用,以保证他人浏览的方便。这里建议若连续几行都有代码控制,    
      要在每一行结束用*[m或*[0m收尾,避免影响到下一行的代码。                 
────────────────────────────────────|⑷|─

──|色彩理论|────────────────────────────────

  一  三原色和三原光                                                          
                                                             ▁               
      我们日常生活中接触到的颜色系统是三原色               ◢▄◣             
      系统,三种基本色为:红、黄、蓝。而电脑               ▌红 │            
      显示的颜色系统是三原光系统,三种基本色       ▁   ↙ ◥▄◤ ↘   ▁     
      为:红、绿、蓝。三原色与三原光是有区别     ◢▄◣              ◢▄◣   
      的,我们今后所说的颜色都是建立在三原光     ▌黄 │     ↓      ▌紫 │  
      系统上的,希望大家不要混淆。               ◥▄◤ ↘   ▁   ↙ ◥▄◤   
                                                           ◢▄◣             
  二  三原光的合成                                 ↑      ▌白 │     ↑     
                                                   ▁      ◥▄◤      ▁     
      1=红  2=绿  4=蓝  三原光的合成可以用左     ◢▄◣ ↗        ↖ ◢▄◣   
      3=红+绿=黄        边的表格进行理解,其     ▌绿 │     ↑      ▌蓝 │  
      5=红+蓝=紫        包含了合成原理和对应     ◥▄◤      ▁      ◥▄◤   
      6=绿+蓝=青        代码,也可以用右边的            ↘ ◢▄◣ ↙          
      7=红+绿+蓝=白     图进行形象记忆。                   ▌靛 │            
      0就是黑色                                            ◥▄◤             

────────────────────────────────────|⑸|─

──|色彩理论|────────────────────────────────

  三  相邻色和互补色                                                          
                                                             ▁               
      我们看一下右边的示意图,以白色为中心,黑             ◢▄◣             
      色为外延,中圈互相毗邻的颜色我们称之为相             ▌红 │            
      邻色,分处白色两端的为互补色。白色与黑色     ▁   ↙ ◥▄◤ ↘   ▁     
      我们称为基础互补色。                       ◢▄◣              ◢▄◣   
                                                 ▌黄 │     ↓      ▌紫 │  
      相邻色距离最近,混杂在一起时会产生视觉误   ◥▄◤ ↘   ▁   ↙ ◥▄◤   
      差,因此大面积的互相混淆是不推荐的;互补             ◢▄◣             
      色距离最远,混杂在一起会产生强烈的对比效     ↑      ▌白 │     ↑     
      果,不易产生视觉误差。黑色和白色可以和任     ▁      ◥▄◤      ▁     
      何颜色搭配而不会产生较大视觉误差。         ◢▄◣ ↗        ↖ ◢▄◣   
                                                 ▌绿 │     ↑      ▌蓝 │  
      这里需要提一下黑色与白色间的两种颜色灰色   ◥▄◤      ▁      ◥▄◤   
      与暗白,灰色与三种基础色不易产生混淆,而          ↘ ◢▄◣ ↙          
      与三种合成色极易产生混淆,这点在使用上需             ▌靛 │            
      要格外注意。暗白与任何一种颜色的搭配都适             ◥▄◤             
      中,但大面积的背景暗白可能造成过亮效果。                                
────────────────────────────────────|⑹|─

──|色彩理论|────────────────────────────────

  四  透明效果                                                                

      我们先前曾给出一张颜色与代码的列表,里面列出了16种颜色在 256色表示下    
      的代码,这里就不重新列出,而根据颜色代码加法,可以得到多种透明效果。    

                                                                              
      正确的透明效果: ▌              ▌             ▌               ▌     
                           ▌              ▌                                 
                               ▌              ▌                             
                                   ▌              ▌                         
                                                                              
      ──────────────────────────────────    
                                                                              
      错误的透明效果:                                                 ▌     
                                                           ▌                 
                                                               ▌             
                                                                   ▌         
                                                                              
────────────────────────────────────|⑺|─

──|知识扩充|────────────────────────────────

  一  特殊ANSI转义序列                                                        

      *[A  光标上移(例如*[3A是上移3行)                                        
      *[B  光标下移                                                           
      *[C  光标右移                                                           
      *[D  光标左移                                                           
      *[H  光标定位(实际使用时一般为*[m;nH,m取1~24,n取1~80)               
      *[s  存储光标位置                                                       
      *[u  恢复光标位置(回到最近一次*[s所在的地方)                            
      *[K  删除到行末(fterm和sterm用当前背景色填充,cterm用默认背景色填充)    
      *[f  作用和用法和*[H完全一样                                            
      *[2J 作用是清屏                                                         

      这些特殊转义序列平时使用较少,主要用于特殊qmd的制作,我们在qmd制作一    
      节中会详细介绍,但这类qmd可能影响他人阅读,不建议使用。                 

      需要注意的是,*[u和*[U是有区别的,使用时请小心谨慎。                    

────────────────────────────────────|⑻|─

──|知识扩充|────────────────────────────────
                                            ____           ◢◢◤     ____
  二  非标准ANSI转义序列                  ╱    ╲▃▅▆▇      ▅▃╱    ╲  
                                         /     ◢         █    夕 楼◣     \ 
  Cterm                                 │   ◢       █  █  █Sylow  ◣   │
      *[M  延时控制                      \ ◢   ▂▃▂█      █▂▃▂   ◣ / 
      *[G  响铃                           \  ◢         ◣  ◢         ◣  /  
      *[I  改变字体                      ▊▊                            ▎▎ 
      *[F  对某一区域填充颜色(基本不用)       ████  ▇  ▇  ████      
      *[U  弹出URL确认框                 ▊▊ ████  █  █  ████ ▎▎ 
  fterm                                    ◥◥         ◤  ◥         ◤◤   
      *[nM 删除当前开始的n行               ◢╲ ▁▃▄▆▅▄▅▆▄▃▁ ╱◣   
      *[nL 插入n个空白行,光标位置不变   ▊◢                            ◣▎ 
      *[nP 删除n个空格                                                        
      *[n@ 插入n个空格,光标位置不变     ▊◥ ▁▂▃▄▆███▆▄▃▂▁ ◤▎ 
                                           ◥                            ◤   
      目前很多特殊和非标准的ANSI转义序      /◥                        ◤\    
      列都被禁止,希望大家勿随意使用。      \   ▅▃▁          ▁▃▅   /    
      其实只用标准序列就可以做出很多特     ╭       ╭╯▇▇▇╰╮       ╮   
      殊效果,右图就是一个很好的例子。      ────╯          ╰────    
────────────────────────────────────|⑼|─

──|本次作业|────────────────────────────────

  一  A类作业(所有正式学员需要完成)                                          

      1. 在Test版练习手动给少量文字加控制码。(该题无须书面提交)               
      2. 使用透明色效果制作一个ANSI。(书面提交,形式不限)                     

  二  B类作业(建议版主学员或有兴趣的学员完成)                                

      1. 简化以下代码。(书面提交,提交简化后代码及显示效果)                   
         *[1m*[4m*[5m*[33;45;31mA*[0m*[44;45;32mB*[0m*[42;32mC*[0m            
      2. 规范代码的意义。(书面提交,字数不限)                                 

  三  C类作业(希望有一定ANSI基础或有兴趣的学员完成)                          

      1. 自行查阅有关走马灯效果的制作方法并尝试制作。(书面提交,形式不限)     

  正式学员完成作业后提交给组长,由组长统一提交给教师。旁听学员若希望提交作    
  业,可自行选择当班教师进行提交。                                            

────────────────────────────────────|⑽|─


--
    正如政府的意志并不必然是真理一样,民意也有它的盲目性,有着不可尽信的一面。民
意具有情绪性,有时并不是理性思考的结果。二战前的希特勒就曾获得德国绝大多数民众的
民意支持;而几乎为全世界所反对的美国的反恐战争,却获得了美国民众的广泛支持。民意
还具有不确定性。美国前国防部长麦克纳马拉在其《回顾——越战的经验与教训》一书中,
所说的一个事实耐人寻味:在越南战争刚刚开始的时候,70%以上的美国人支持战争,但到
战争相持不下时,却有70%以上的人开始反对战争。


※ 修改:·trijif 于 Jan 25 18:39:50 修改本文·[FROM: 202.118.230.102]
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.102]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:213.687毫秒