예제 #1
0
파일: figlet.php 프로젝트: dns/libcaca
function show_figlet($str, $font)
{
    $cv = caca_create_canvas(0, 0);
    if (!caca_canvas_set_figfont($cv, $font)) {
        return false;
    }
    $chars = unistr_to_ords($str);
    $color = 0;
    foreach ($chars as $c) {
        caca_set_color_ansi($cv, 1 + ($color += 1) % 13, CACA_WHITE);
        caca_put_figchar($cv, $c);
    }
    echo caca_export_string($cv, "html3");
}
예제 #2
0
파일: caca.php 프로젝트: dns/libcaca
 function putFigchar($char)
 {
     return caca_put_figchar($this->cv, $char);
 }
예제 #3
0
파일: figfont.php 프로젝트: dns/libcaca
 *  to Public License, Version 2, as published by Sam Hocevar. See
 *  http://www.wtfpl.net/ for more details.
 */
function unistr_to_ords($str, $encoding = 'UTF-8')
{
    $str = mb_convert_encoding($str, "UCS-4BE", $encoding);
    $result = array();
    for ($i = 0; $i < mb_strlen($str, "UCS-4BE"); $i++) {
        $c = mb_substr($str, $i, 1, "UCS-4BE");
        $val = unpack("N", $c);
        $result[] = $val[1];
    }
    return $result;
}
if (php_sapi_name() != "cli") {
    die("You have to run this program with php-cli!\n");
}
if ($argc < 3) {
    die("Too few arguments.\nUsage: cmd <path of font> <utf8 string>\n");
}
$cv = caca_create_canvas(0, 0);
if (!caca_canvas_set_figfont($cv, $argv[1])) {
    die("Could not open font\n");
}
$chars = unistr_to_ords($argv[2]);
$color = 0;
foreach ($chars as $c) {
    caca_set_color_ansi($cv, 1 + ($color += 4) % 15, CACA_TRANSPARENT);
    caca_put_figchar($cv, $c);
}
echo caca_export_string($cv, "utf8");