テキストを画像に変換

メールアドレスなどのテキストを画像に変化してくれる『TxtNinja』 - 100SHIKI ~ 世界のアイデアを日替わりでなどで紹介されているTxtNinja.com - Hide email, text or domain from search engines が話題になっているようですが、xgawk を用いることで awk でも変換することができます。

ここでは blank.png という白地の PNG ファイルを用意して、ここに文字を埋め込むことにします。 機能は最小限に絞っているため、必要に応じて拡張をしてください。

#! /usr/local/bin/xgawk -f
# text2png.awk
# テキストを PNG 画像に変換
# usage: xgawk -f text2png.awk text

@load gd

BEGIN {
    str         = ARGV[1];
    png_file    = "blank.png";
    output_file = "text2png.png";
    font        = ENVIRON["HOME"] "/.fonts/ipag.ttf";

    image_handler   = gdImageCreateFromFile(png_file);
    color           = gdImageColorAllocate(image_handler, 0, 0, 0);

    gdImageStringFT(image_handler, brect, color, font, 12, 0, 5, 20, str);
    gdImagePngName(image_handler, output_file);

    gdImageDestroy(image_handler);
}

GD の機能を使っていますので、全く awk らしくないかもしれませんが、他の言語を見ていても GD で拡張した瞬間に GD の長い関数名を使うケースが多く、元の言語らしさは失われることもあります。

さて、実行は以下のようにします。

$ xgawk -f text2png.awk 'hi_saito@yk.rim.or.jp'

DoukakuAWK_209.png

得られた画像は右のものになります。 細かなことにこだわってないため、何の変哲もありませんが、それだけ簡単に組んでいます。

tag_xgawk.png