专栏首页WriteSimpleDemoLinux命令行字符画生成器

Linux命令行字符画生成器

工具地址:https://github.com/pedroqin/Ascii_Signature

由于排版问题,部分示例无法正常显示,如有需要请移步github查看

介绍

此项目移植于网页版字符画生成器,最初是为了方便公众号生成图文素材的封面图片。移植到Linux下后,不仅可以更方便生成字符画,也可应用于linux命令行模式下,使其文字提示更加醒目美观。

文件说明

ascii_signature.sh

此文件为工具主程序,实现了查询当前可用字体,根据参数生成目标字符画的功能。

  • 目前支持对大小写英文字母和数字转化,暂不支持特殊字符
  • 脚本内自带一种默认字符画,其他字符画依赖于相同路径下 font文件夹
  • 没有 [-f|--font]参数时默认使用自带默认字体smkeyboard

具体操作如下:

$ ./ascii_signature.sh
usage:
    ./ascii_signature.sh --font|-f $font --str|-s $string   do work
                         --list|-l                            list all supported font

$ ./ascii_signature.sh -l
smkeyboard(default) blocks bubble doom smpoison template timesofl univers

$ ./ascii_signature.sh -s Diag -f univers
88888888ba,   88 
88      `"8b  ""
88        `8b    
88         88 88 ,adPPYYba,  ,adPPYb,d8
88         88 88 ""     `Y8 a8"    `Y88
88         8P 88 ,adPPPPP88 8b       88 
88      .a8P  88 88,    ,88 "8a,   ,d88
88888888Y"'   88 `"8bbdP"Y8  `"YbbdP"Y8
                             aa,    ,88
                              "Y8bbdP"

$

font 文件夹

用于存放字符画风格的目录。其中,'template' 为模板文件,在新增字符画风格时,只需将'template' copy 成新的名字,然后将文件中大小写英文字母和数字填入对应位置即可 目前已经支持的字符画样式如下:

$ ls font/
blocks  bubble  doom  smpoison  template  timesofl  univers
$ ./ascii_signature.sh -s Diag 
 ____  ____  ____  ____
||D ||||i ||||a ||||g ||
||__||||__||||__||||__||
|/__\||/__\||/__\||/__\|
$ ./ascii_signature.sh -s Diag -f blocks
 .----------------.  .----------------.  .----------------.  .----------------.
| .--------------. || .--------------. || .--------------. || .--------------. |
| |  ________    | || |     _____    | || |      __      | || |    ______    | |
| | |_   ___ `.  | || |    |_   _|   | || |     /  \     | || |  .' ___  |   | |
| |   | |   `. \ | || |      | |     | || |    / /\ \    | || | / .'   \_|   | |
| |   | |    | | | || |      | |     | || |   / ____ \   | || | | |    ____  | |
| |  _| |___.' / | || |     _| |_    | || | _/ /    \ \_ | || | \ `.___]  _| | |
| | |________.'  | || |    |_____|   | || ||____|  |____|| || |  `._____.'   | |
| |              | || |              | || |              | || |              | |
| '--------------' || '--------------' || '--------------' || '--------------' |
 '----------------'  '----------------'  '----------------'  '----------------'

$ ./ascii_signature.sh -s Diag -f bubble
  _    _    _    _
 / \  / \  / \  / \
( D )( i )( a )( g )
 \_/  \_/  \_/  \_/

$ ./ascii_signature.sh -s Diag -f doom
______   _
|  _  \ (_)
| | | |  _    __ _    __ _
| | | | | |  / _` |  / _` |
| |/ /  | | | (_| | | (_| |
|___/   |_|  \__,_|  \__, |
                      __/ |
                     |___/

$ ./ascii_signature.sh -s Diag -f smpoison
@@@@@@@  @@@  @@@@@@   @@@@@@@
@@!  @@@ @@! @@!  @@@ !@@
@!@  !@! !!@ @!@!@!@! !@! @!@!@
!!:  !!! !!: !!:  !!! :!!   !!:
:: :  :  :    :   : :  :: :: :

$ ./ascii_signature.sh -s Diag -f timesofl
     ### ######## ######## ########
#  #  ## ###  ### ######## ########
#  ##  # ######## ###  ### ##   # #
#  ##  # ##   ### ## #  ## #  ##  #
#  ##  # # #  ### #  #  ## #  #   #
#  #  ## ###  # # #  #  ## ##  #  #
     ### ###   ## ##  #  # ####  ##
######## ######## ######## #    ###

$ ./ascii_signature.sh -s Diag -f univers
88888888ba,   88
88      `"8b  ""
88        `8b
88         88 88 ,adPPYYba,  ,adPPYb,d8
88         88 88 ""     `Y8 a8"    `Y88
88         8P 88 ,adPPPPP88 8b       88
88      .a8P  88 88,    ,88 "8a,   ,d88
88888888Y"'   88 `"8bbdP"Y8  `"YbbdP"Y8
                             aa,    ,88 
                              "Y8bbdP"

:当缺少小写字母对应字符画时,将对应位置留空即可。在进行转换时会自动使用大写字母字符画进行替换

本文分享自微信公众号 - WriteSimpleDemo(this_is_a_wechat),作者:PedroQin

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-12-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于树莓派的多功能USB实现--系统安装

    优势:保证功能健全的同时体积不到传统Raspberry Pi尺寸的一半。但是最主要的优势是:

    PedroQin
  • linux shell中使用{X..Y}以及${!XXX}

    跟$(seq start end)功能一样,生成从start至end的序列,闭合区间。 step默认为1。

    PedroQin
  • shell写个贪吃蛇游戏

    鸡蛋的坐标是通过获取随机值实现,并增加判断以防止鸡蛋坐标在蛇坐标数组内,在实际应用时,当游戏界面足够大,蛇的长度已经足够长时,所剩的空白很少甚至1个时,可能会出...

    PedroQin
  • golang-protobuf使用

    Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML、json相比,Protocol buffers序列化后...

    _simple
  • Salesforce开源用于结构化数据的机器学习库TransmogrifAI

    机器学习模型可以识别数百,数千甚至数百万数据点之间的关系,但很难进行建构。数据科学家花费数周和数月不仅预处理要训练模型的数据,而且从该数据中提取有用的特征(即数...

    AiTechYun
  • 解决机器学习问题的一般流程

    本期将针对机器学习的新朋友,为大家讲解解决机器学习问题的一般思路: 很多博客、教程中都对机器学习、深度学习的具体方法有很详细的讲解,但却很少有人对机器学习问题的...

    磐创AI
  • Google AI 最新博文:模型的不确定性是否可信?

    在理想情况下,机器学习方法(如深度学习)被用来对与训练数据分布相同的数据进行预测。但实际情况可能大不相同:相机镜头变得模糊,传感器退化等问题,都可能导致训练模型...

    AI研习社
  • 基于FPGA的深度学习加速器综述:挑战与机遇

    近年来,神经网络在各种领域相比于传统算法有了极大的进步。在图像、视频、语音处理领域,各种各样的网络模型被提出,例如卷积神经网络、循环神经网络。训练较好的 CNN...

    机器之心
  • java基础学习_IO流03_字符流、IO流小结、案例_day21总结

    黑泽君
  • 深度学习的“深度”有什么意义?

    深度学习的"深度", 早几年讨论的挺多的,身边有不同的理解:深度=更大规模的网络,也有认为:深度=更抽象的特征,近年来物理上也有人侧面显示:深度=玻璃相转变,如...

    计算机视觉战队

扫码关注云+社区

领取腾讯云代金券