V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
bestcondition
V2EX  ›  分享创造

写了个"评论区写生"生成工具

  •  2
     
  •   bestcondition ·
    bestcondition · 2022-05-07 22:39:19 +08:00 · 2537 次点击
    这是一个创建于 938 天前的主题,其中的信息可能已经有所发展或是发生改变。

    经常在 b 站、贴吧、steam 等平台评论区看到用字符组成的图片,像下面这种,算是评论区写生的一种(还有些用 emoji 或者 ascii 写生)。

    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⣈⣌⣮⣮⣮⣌⠈⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⠾⠑⠑⠑⠑⣹⣿⣿⢎⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⡰⢀⡀⢌⠈⢈⣼⣿⣿⣿⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⠠⠗⠣⡷⠇⣳⡿⣿⣳⣿⠌⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⠢⡦⣶⢯⣻⣿⣿⠃⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢈⠳⠱⡷⣿⣿⣿⠿⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⠐⣳⣮⣮⣾⣿⣿⡿⣧⢈⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢈⣌⣬⢎⣌⣎⠐⣷⣿⣿⡿⣿⣭⣾⣿⣿⣎⢌⠈⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⣾⣿⣿⣿⣿⣿⣿⣿⠎⢀⢀⢀⠐⣳⣿⣿⣿⣿⣿⣿⣿⣿⣮⠌⢀⢀
    ⢀⢀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣿⢏⢀⢀⢀⢀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢀⢀
    ⢀⢀⣀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢀⢀⢀⣀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢀⢀
    ⢀⢀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠌⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀
    ⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀⣸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀
    ⢀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀
    ⢀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠳⢻⣿⣿⣿⣿⣿⣿⣿⠏⢀
    ⢀⠰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⢀
    ⢀⢀⡱⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢀⢀
    ⢀⢀⢀⢀⢀⣑⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⢀⢀
    ⢀⢀⢀⢀⢀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠑⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀⢀⢀⢀⢀
    

    想着这种东西应该不是一个字符一个字符的敲出来的,但苦于不知道用什么关键词搜索,一直没有找到生成工具,索性就自己写一个吧。

    思路是这样的,灰度化->尺寸变化->二值化->分块映射字符。图片处理操作都很简单,字符映射一开始准备写 255 条映射(像这样的八饼字符⣿有 255 个,除去一个空白字符),后来发现这些字符排列是有序的,把每个点当成二进制位,所表示的数字就是该字符序号与第一个空白字符序号的差。二进制位顺序大概是下面这样的。

    0 4
    1 5
    2 6
    3 7
    

    做出图片转文字之后,既然视频是一帧一帧图片组成的,又做了一个视频转文字功能,还可以在支持 unicode 的终端(我用的 windows terminal)播放视频,具体内容欢迎大家去 github 查看。

    bad apple.txt

    github 仓库地址: https://github.com/bestcondition/image2text

    欢迎大家使用本工具在评论区写生!

    7 条回复    2022-05-08 13:15:28 +08:00
    koor
        1
    koor  
       2022-05-07 23:14:18 +08:00
    这个学名叫 ascii art ,另外本帖的 tag 有点意思
    bestcondition
        2
    bestcondition  
    OP
       2022-05-07 23:14:34 +08:00
    大家别只加 star ,留个评论呗😘
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⣈⣌⠈⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⣼⣿⣿⣯⠈⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⣼⣿⣿⣿⣿⣯⠈⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢈⣼⣿⣿⣿⣿⣿⣿⣯⢌⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⣈⣌⣮⣮⣮⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣮⣮⣮⣌⣌⢀⢀⢀
    ⢀⢀⢀⡳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⢀⢀
    ⢀⢀⢀⢀⠐⡳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠷⠓⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⠐⣳⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠃⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⣰⣿⣿⣿⣿⣿⡿⡷⡷⣷⣿⣿⣿⣿⣿⣯⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⣷⣿⡿⠷⠓⠁⢀⢀⢀⢀⠐⠱⡳⣷⣿⣿⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    ⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀⢀
    bestcondition
        3
    bestcondition  
    OP
       2022-05-07 23:16:59 +08:00
    @koor 原来如此,刚去搜了一下 ascii art 。
    我也想吐槽一下这个 tag ,怎么改呀🤣🤣🤣,第一次发帖,没找到加 tag 的功能
    siknet
        4
    siknet  
       2022-05-08 07:58:22 +08:00 via Android
    ???我以为回到 20 年前了
    十几二十年前还有人没见过 ASCII 表情和动画的吗?
    HENQIGUAI
        5
    HENQIGUAI  
       2022-05-08 10:32:33 +08:00
    有屏幕的地方就有 Bad apple !
    mxalbert1996
        6
    mxalbert1996  
       2022-05-08 11:10:58 +08:00 via Android
    其实已经有不少工具可以生成 ASCII Art ,其中比较有名的是 libcaca: https://github.com/cacalabs/libcaca
    想用 ASCII Art 播放视频的话可以用 mpv 的 caca 输出: https://mpv.io/manual/stable/#video-output-drivers-caca
    enchilada2020
        7
    enchilada2020  
       2022-05-08 13:15:28 +08:00 via Android
    烂苹果好评
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   977 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:02 · PVG 07:02 · LAX 15:02 · JFK 18:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.