iT邦幫忙

DAY 20
3

回應鐵人賽的文章變鐵人系列 第 20

[Reply] 利用倚天字型畫中文 ascii art (文字畫)

  • 分享至 

  • xImage
  •  

fishk 在 從Apple II, CDC到Android之(7) - 倚天中文系統
ET3 在圖型界面時代還有什麼用處嗎?
現在多是用 TTF 字型,
可以利用GD或ImageMagick來把字寫到圖型檔裡。
而以前的倚天字型,
可以畫出 ASCII art
也有人稱為文字畫,
在過去的BBS環境中是蠻好玩的,
這大概是ttf字型可能不大容易做到吧?!

一、點陣字型
首先要有倚天裡的點陣字型檔:

ascfont.15  spcfont.24   srctel.ttt  stdfont.24b  stdfont.24r  usrfont.24b  usrfont.24m
ascfont.24  spcfsupp.15  stdfont.15  stdfont.24k  stdfont.24s  usrfont.24k  usrfont.24r
spcfont.15  spcfsupp.24  stdfont.24  stdfont.24l  usrfont.15m  usrfont.24l  usrfont.24s

假設將字型檔放在:/usr/share/ETfonts 裡。

二、下載安裝程式
下載 cbanner1.10.tar.gz,並參考其 說明檔
tar zxvf cbanner1.10.tar.gz
cd cbanner
make
cp cbanner /usr/bin/

三、執行前設定:

$ cbanner
Error in open 24x24 file !  Error Code: 1
Please type 'cbanner -p' to install font file.
# 不知道字型檔在何處。

$ cbanner -p
Can not create configuration file /usr/local/etc/cbanner.cfg !
Can't not create configuration file correctly !
#第一次執行 -p 會把字型指定檔寫入該目錄

希望把設定檔放在 /etc 下,
在 Makefile 檔案中:

改這行
CFG= "/usr/local/etc/cbanner.cfg"
成這行:
CFG= "/etc/cbanner.cfg"

再重新編譯一次

第一次以root執行,才可把設定檔寫到 /etc 下,
可供一般權限使用得到:

# cbanner -p
 - Chinese Font Installation -

 > This installation need Eten Chinese Systen's fontfile <

  - Please input your Font's PATH -
  - Program will search files below in this PATH
    - stdfont.15,ascfont.15,spcfont.15,spcfsupp.15
      stdfont.24?,ascfont.24,spcfont.24,spcfsupp.24

        ==> Input Path (ex: /dosc/et3 )  -> /usr/share/ETfonts

  - Saving Configuration.../etc/cbanner.cfg

四、調整執行的環境
目前作業系統環境常是UTF-8,
而倚天字型是BIG5,
所以需改一下環境變數:
export LANG=zh_TW.BIG5
並且你的終端機連線軟體,
其字元編碼也要改成 BIG5,
不然只是畫出亂碼來。

$ cbanner -s 鐵人賽
    ;;'     ;;'   ;,,              ;,,             ;       ';,        ,,
   ;; ;,  ,,;;,;, ;; ';,           ;;             ;;''''';;'''';;''''';;'
  ,;   ;;   ;;    ;;  ''           ;;            ;;  '''';;'''';;'''','
 ,;,,,;, ,,,;;,,,,;;,,,;,          ;;                '''';;'''';;'''' ,,
 '  ;;    ,,,,,,  ;;              ,;',           ''''''';;'''''';;'''''''
 ,,,;;,;, ;;  ;;  ;;  ;,,         ;; ;,               ,;;,,,,,,,,;;,,
    ;;    ;'''''  ;;  ;;         ;;'  ;,           ,,';;          ;;';;,,
 ;, ;; ;, ,,,;''  ;; ;;         ,;'    ;,        ''   ;;'''''''''';;  '
  ;,;;,'    ;;    ';,; ,       ,;'      ;;,           ;;,,,,,,,,,,;;
  ' ;;    '';;''   ;;, ;      ,;'        ';;,         ;;          ;;
 ,,,;;''    ;;,, ,;' ;,;,   ,;'            ';;;,,     '';'''''''';;'
 ''      ';''  ,''    ';',,''                ';    ,,,;'''         '';;

若要以「楷體」:

$ cbanner -s 鐵人賽  -tk
                ,,                                       ';;    ,,
      ,,    ';  ;;                ;,,               ;,,,,,;;;'''';;,
      ;;,    ;  ;;  ;;;           ;;'              ,;'  ;;,,;;, ''
     ;; '; ,,;'';;  ,            ,;;               '' '';; ;;,,
    ,;      ;;,,;;'''''          ;;                   '';;';;,,,,
   ,;,,;'''' ,,, ;, ,,,         ;;';,               ,,,;;'''';;'''
  ;'  ;;,, ;' ;; ;; ;;'        ;;   ;;,               ,;;'''';;;,,
 '  '';; , '',,,  ;,;        ,;'     ';;,          ,,;';;''' ;; ';;;,,,
   ';,;;;' ';;,,  ;;'      ,;'         ;;;,,      ''   ;;''' ;;   '''
    ,,;;'' ';; , ,;;;,  ,,;'            ';;;;;,,,      ';;''';'
 ';;''   ,;;''',;'  ';,,;                              ,;'  ';,,

其他參數可用 cbanner -h 來看,
而字型可以是 b,k,l,r,s
分別是黑體、楷體、隸書、圓體、行書。

系列文章


上一篇
[Reply] 15分鐘用ruby把android手機變成遠端間諜相機
下一篇
[Reply] 如何在vim裡用拼字檢查
系列文
回應鐵人賽的文章變鐵人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
逮丸逮丸
iT邦大師 1 級 ‧ 2024-07-05 15:21:37

現在 linux 上都是 UTF-8 的環境,比較方便用這個 script 在 UTF-8 的 terminal 的環境裡,轉換成 Big5 的字碼,就可以直接輸入一般環境的中文,而產生不同字型的 ascii:

#!/bin/bash
# cbanner.sh
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LANG=zh_TW.BIG5

echo $1
for i in b k l r s
do
cbanner -s `piconv -f utf8 -t big5 -s $1` -t$i
done

然後 ./cbanner 邦幫忙 就可產生

我要留言

立即登入留言