【问题标题】:How to convert text to ascii art in an array如何将文本转换为数组中的 ascii 艺术
【发布时间】:2015-02-25 07:48:33
【问题描述】:

我想知道是否有一个工具可以基本上将我的文本转换成一个“地图”文件,我可以使用我编写的一个小程序来显示该文件。此文件中数字的位置定义了我投影到屏幕上的点的 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

哪些输出

那么有谁知道我如何将任何字符串转换成这种文件? 如果不存在这样的工具,是否有一种获取角色形状的通用方法可以帮助我生成这些地图?

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

【问题讨论】:

标签: parsing converter ascii-art


【解决方案1】:

一个粗略的解决方案:

  1. 创建一个图像对象。
  2. 使用字体库在其上书写文本。由于分辨率非常低,使用位图字体会改善结果。
  3. 遍历图像像素并输出您的文本文件。

更详细的解决方案需要指定编程语言。

编辑:我整理了一下:http://phpfiddle.org/lite/code/zr3k-hwbw

<?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   

【讨论】:

  • 感谢您的打扰(或者我不知道!)这样做,它确实符合我的需要,但不幸的是我更喜欢上面给出的 figlet 解决方案。 (虽然赞成:-))
猜你喜欢
  • 2021-11-28
  • 2015-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多