Parsing 如何将文本转换为数组中的ascii艺术

Parsing 如何将文本转换为数组中的ascii艺术,parsing,converter,ascii-art,Parsing,Converter,Ascii Art,我想知道是否有一个工具可以将我的文本,比如说“42”转换成一个“地图”文件,我可以用我编写的一个小程序来显示。这个文件中数字的位置定义了我投射到屏幕上的点的Z坐标,它们的X和Y显然是我数组的二维 下面是我想获得的地图示例: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 10 0 0 10 10 0

我想知道是否有一个工具可以将我的文本,比如说“42”转换成一个“地图”文件,我可以用我编写的一个小程序来显示。这个文件中数字的位置定义了我投射到屏幕上的点的Z坐标,它们的X和Y显然是我数组的二维

下面是我想获得的地图示例:

0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0 10 10  0  0 10 10  0  0  0 10 10 10 10 10  0  0  0
0  0 10 10  0  0 10 10  0  0  0  0  0  0  0 10 10  0  0
0  0 10 10  0  0 10 10  0  0  0  0  0  0  0 10 10  0  0
0  0 10 10 10 10 10 10  0  0  0  0 10 10 10 10  0  0  0
0  0  0 10 10 10 10 10  0  0  0 10 10  0  0  0  0  0  0
0  0  0  0  0  0 10 10  0  0  0 10 10  0  0  0  0  0  0
0  0  0  0  0  0 10 10  0  0  0 10 10 10 10 10 10  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
哪个输出

有人知道如何将任何字符串转换成这种文件吗? 如果没有这样的工具存在,有没有一种获取角色形状的常用方法可以帮助我生成这些贴图

感谢阅读我的文章,期待阅读您的答案:)

一个粗略的解决方案:

  • 创建一个图像对象
  • 使用字体库在上面书写文本。由于分辨率非常低,使用位图字体将改善结果
  • 迭代图像像素并输出文本文件
  • 更详细的解决方案需要指定一种编程语言

    编辑:我做了这个:


    只需使用
    banner
    figlet
    ?这些标签是什么语言?你能再详细一点吗?两者都能将文本转换成ASCII图形。如果你想自己重新编码,那很好,但这些应该可以作为灵感。从记忆上看,它们都是C。参见,和;根据(Zoredache的回答)debian sysvbanner是一个包含155行C代码的单一文件。这个答案还有两堆源代码,可以做你想做的事情(只需打印一个十进制值而不是一个#):谢谢你给我指了那些工具,男士问题解决了谢谢你费心(或者我不知道!),它确实符合我的需要,但不幸的是,我更喜欢上面给出的figlet解决方案。(尽管投票结果为:-)
    <?php
        $str = isset($_GET['str']) ? $_GET['str'] : "+1";
        $font = isset($_GET['font']) ? $_GET['font'] : 1;
        $w = imagefontwidth($font) * strlen($str);
        $h = imagefontheight($font);
        $img = imagecreate($w, $h);
        $bg = imagecolorallocate($img, 0, 0, 0);
        $tc = imagecolorallocate($img, 255, 0, 0);
        imagestring($img, $font, 0, 0, $str, $tc);
    
        header("Content-Type: text/plain");
        for ($y = 0; $y < $h; $y++) {
            for ($x = 0; $x < $w; $x++) {
                echo (imagecolorat($img, $x, $y) * 10)."\t";
            }
            echo "\n";
        }
    ?>
    
    0   0   0   0   0   0   0   0   0   0   
    0   0   10  0   0   0   0   10  0   0   
    0   0   10  0   0   0   10  10  0   0   
    10  10  10  10  10  0   0   10  0   0   
    0   0   10  0   0   0   0   10  0   0   
    0   0   10  0   0   0   0   10  0   0   
    0   0   0   0   0   0   10  10  10  0   
    0   0   0   0   0   0   0   0   0   0