将棋盤面を動的に生成する方法(続)

昨日4月24日の続きです。

hosikuzuさんから改めてコメントいただきました。KIFtoGIFは、あらかじめ用意した駒画像を入力に応じて連結させることで盤面画像を生成しています。このように、用意された画像を連結して出力するプログラムというと、画像式のカウンターが最もよく使われていますね。

画像式のカウンターは数字画像を単に横に羅列しただけのものもありますが、現在多く使われているのは数字画像を連結してから出力するものです。しかし、少なくとも日本では昨日書いたようなflyなどで新しいgif画像を作り出しているカウンターは多くありません。最もよく見かけるのは、とほほのCGIソフト集のgifcat.plを利用したカウンターです。

このGIF画像連結ライブラリが登場したのは、米国のUNISYSがgifに関して特許を主張したのがきっかけです。flyなどをつかって新たなgif画像を作成する行為はその特許に抵触するおそれがあると言われていました。gifcat.plではアニメーションgifを利用し、新たなgifファイルを作らないことで特許に触れないようにしたわけです。わかりやすく言うと、「1桁目の数字を表示」→「その0秒後に2桁目の数字を表示」→「その0秒後に2桁目の……」ということです。そのためアニメーションを表示しない設定でgifcat.plを利用したカウンターを見ると、1桁目しか表示されません。

私はこのやり方を応用して将棋盤面画像を作成できないかと真剣に検討したことがあります。しかし81枚以上の画像を縦横に連結するのはそれだけで面倒ですし、アニメーションを使うというのもやや邪道な気がしたので着手しないまま今に至っています。もうすぐgifの特許も切れるという話ですから、この方法はそろそろ使命を終える時期ではないかと思っています。

次に、話は変わってmimeTeXですが、こちらはあらかじめ用意した画像を連結するのではなく、TeXの書式から直接画像を生成しているのではないでしょうか。内部機構を見ていないので自信はありませんが、文字サイズを変更できたり図形が書けたりすることを考えると、TeXからdviやpsファイルを生成するのと同じような形で画像に出力できても良さそうな気がします。

将棋盤面を作成するのに必要なのは、基本的に駒を表す漢字と盤面に使われる縦線・横線だけです。しかし一番ネックになるのが、漢字を180度反転させる操作なんですね。そのような操作を備えているソフトとなると図形処理ソフトになってきますが、曲線描画だとか着色だとかは必要ないのでそれだと無駄に重すぎることになってしまうというわけです。IE限定で良ければfilterが使えるんですけど、ローカルならまだしもWWWでは使いにくいですね。