One Note Jam

AH-K3001Vの待受画面にメモを表示 (2005-01-20)

今時の機種なら簡単にできそうなことですが……

タイトルのとおり、AH-K3001Vの待受画面上にちょっとしたメモを常時表示したいと思っているわけです。PCのデスクトップ上に「付箋紙」風のメモを表示するようなプログラムがありますが、それの待受画面版みたいな感じでしょうか。

Javaプログラムが動く端末ならば、いわゆる「待受アプリ」で実現できるでしょう。また、端末自体にそういった機能を持っている機種もありそうです。しかし、AH-K3001Vにはどちらもありません。でも、どうにかして実現できないものか。

力技で解決

で、考えたのが、「壁紙画像の上にメモ文字列を描画した画像を作成する」という方法です。もちろん、こんなことはAH-K3001Vでは不可能なので、Webサーバにやらせます。Webサーバ側にベースとなる壁紙画像を用意しておき、さらにメモ文字列を受け取るCGIプログラムも置いておきます。そして、AH-K3001VのOperaからそのCGIにアクセスしてメモ文字列をPOSTして、そのタイミングで壁紙画像へメモ文字列を書き込むという算段です。

メモ文字列をやりとりするCGIプログラムは簡単に作れますが、画像に文字列を描画するのはどうすればいいでしょうか? ここは安易にImageMagickを実行することにしました。ImageMagickには大量のオプションが用意されていて、様々な画像操作が可能です。せっかくなので、単に文字列を描画するだけではなくて、ちょっときれいに仕上げてみることにします。今回は、以下のようなオプションを指定してみました。

convert base.png -region 224x160+8+32 -colorize 50/40/30 -raise 2x2
 -fill white -pointsize 14 -font kotori.ttf -draw @cmd.txt wall.png

base.pngはベースとなる壁紙画像で、wall.pngが生成される壁紙画像です。今回は文字列描画用のフォントとして「ことり文字フォント」を使わせてもらいました(kotori.ttf)。

なお、cmd.txtには、"-draw"オプションで描画を行うためのコマンド文字列をあらかじめ格納しておきます。

text 2,0 "
[予定]
2005-01-21: 飲み会
2005-01-24: 納品
[メモ]
・終電の時刻は23:53"

見てのとおり単純なコマンド文字列なので、CGIプログラムで取得したメモ文字列から簡単に変換できるでしょう(ただし、cmd.txtはUTF-8エンコーディングにしておかないと、和文を正常に表示できないので注意が必要です)。

実際の描画例を見てみましょう。

画像. ベースとなる壁紙画像 こんな画像から……(base.png)。

画像. メモ文字列を描画した壁紙画像 こんな画像が生成されます(wall.png)。

あとは、生成された画像をダウンロードして壁紙に設定すればOKです。これで待受画面へのメモ表示を実現することができました。

使いづらい……

しかしながら、このシステムを実際に使ってみるといろいろと問題点が出てきました。一番の問題点は、壁紙画像をダウンロードして保存する際に、AH-K3001Vでは「上書き」ができないことです。当初の目論見では、「wall.pngを壁紙に設定している状態で新しいwall.pngをダウンロードして上書きすれば、待受画面も更新されるだろう」と思っていました。しかし、上書きができないということにより、保存した後に壁紙の設定を再度行わなくてはならないわけで、この作業はかなり面倒です。

また、上書きができないということは、以前の壁紙ファイルがずっと残っていくことを意味します。AH-K3001Vのデータフォルダの容量はかなり少ない(1MBytes程度)ので、こまめに消していく必要があります。これもまた作業の面倒さに拍車がかかる要因となっています。

というわけで、せっかく仕組みを作ったものの、現在はお蔵入り状態になってしまっています。気軽にメモ内容の更新ができないようでは、やはり更新がおっくうになってしまいますね。

posted at 2005-01-20 | Permalink

© 2004-2008 ENDO