X-Face compatibleなアイコンを目指して

WORDIAN Advent Calendar 2017

こんにちは。12月12日です。

X-Face(えっくすふぇいす)って何?

Not to be confused with Xfce.
X-Face

電子メールやネットニュースを使っていますか? X-FaceはメールやネットニュースにX-Face:ヘッダとして付加されています。モダンな電子メールクライアントやニュースリーダでは、メッセージを開いた際にこのヘッダを解釈して48x48ピクセルの2値画像を表示します。

モダンなソフトウェアというのは、SylpheedKmail、またはMewなどのモダンなソフトウェアです(下画像はSylpheed)。Thunderbirdは対応するプラグインが消えてしまっており1、もはやモダンな電子メールクライアントではないようです。

モダン

なお、さらに新しい規格として、base64エンコードされたPNG画像を付加するFace:ヘッダも存在します2。サイズはX-Face同様48x48に固定されてしまいますが、X-Faceとは違ってカラー画像を用いることができます。こちらもThunderbirdにはまともなプラグインが残っていません。

また、複数のX-Face:ヘッダを用いてカラー画像、48x48より大きな画像、アニメーションなどを表現する規格も存在しますが、モダンすぎてほとんどサポートされていません。nao.bird.to: Software Archiveには動作するPerlスクリプトがあるようです。

X-Face compatibleなアイコンを作る

モダンでクールなX-Faceに対応するためには、48x48の2値画像を作る必要があります。2値ビットマップを表現するにはXBM画像が便利です。

アイコンを持っていない場合

簡単です。bitmap -size 48x48でドットを打ちましょう。

bitmap

出来上がったamane.xbmはこんな感じになります。

#define amane_width 48
#define amane_height 48
static unsigned char amane_bits[] = {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x98, 0x11, 0x00, 0x00, 0x00, 0x00,
   0xf0, 0x1f, 0x04, 0x00, 0x00, 0x00, 0x80, 0x00, 0x04, 0x20, 0x00, 0x00,
   0xc0, 0x80, 0x1f, 0x20, 0x00, 0x00, 0x40, 0x00, 0x04, 0x78, 0x00, 0x00,
   0xf0, 0x00, 0x04, 0x30, 0x0c, 0x00, 0xcc, 0x85, 0x1f, 0xd8, 0x1b, 0x00,
   0x44, 0x03, 0x04, 0x3c, 0x30, 0x00, 0xc4, 0x03, 0x04, 0x1e, 0x20, 0x00,
   0x7c, 0x02, 0x04, 0x13, 0x3e, 0x00, 0x40, 0x02, 0x0f, 0x10, 0x7a, 0x00,
   0x40, 0xc0, 0x3c, 0x10, 0x4e, 0x00, 0x40, 0x40, 0xc4, 0x10, 0x00, 0x00,
   0x00, 0x80, 0x07, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   /* *(snip)* */
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

アイコンを持っている場合

より簡単です。How to make X-Faceスナフキンのできるまでなどを参考に、X-Face compatible加工について学びましょう。元画像にもよりますが、手で打たなければならないドットの量は少なくなると思います。

  1. 加工前の画像:
    見たい!知りたい!原子力
  2. グレースケールにした上で、48x48に縮小:
    グレースケール
  3. いい感じにドットを打つ:
    X-face compatible

なお、Online X-Face Converterを用いれば、手での調整が効かない代わりに自動で48x48の2値画像に変換できます。さらに、変換した画像のX-Face表現も取得できるのでとても便利ですね。

X-Face compatibleなアイコンを使う

出来上がったアイコンを自分で眺めて楽しむのもいいですが、ぜひ色々なところで使ってみましょう。

X-Face:ヘッダとして使う

簡単です。先述したOnline X-Face ConverterでX-Face形式に変換できます。もしサーバにアイコンをアップロードするのが不安なら、Compfaceに同梱されているxbm2xface.plを用いてX-Face表現に変換できます。

X-face compatible

X-Face: DE6CX2~b!6.CnZ15hL{G^c1rE}n2cHH6eKU'!cO$^0A&9I*I~1e&`NV3gb%ypxhVEP.I3Q*
 S**R0WR/IC<flQrWkTfeb'HoIfT/'6z08VC-T':;z%Sa,i;{YR,YQ`Lksj&`9?7&%EeXeL6v\2][YX
 h#{XN5@~|7?dKl8j_dv84S,d9^T\m>vSRyaxAwp&wYFqfRUHsC?U?Dak4"X@k$mq:/6ko4G

お使いのモダンな電子メールクライアントやニュースリーダにX-Face:ヘッダを設定しましょう。送信時にX-Face:ヘッダが付加されているのが確認できると思います。

画像として使う

より簡単です。お気に入りの画像編集ソフトウェアで適当なサイズに拡大しましょう。ピクセルがボケてしまうので補間機能を用いてはいけません。GIMPを使うか、ImageMagickでconvert -scale 480x icon.xbm icon.pngなどとするのがおすすめです。変換後のサイズは48の倍数にすると良いでしょう。

大きい

おわりに

X-Face compatibleでモダンなアイコンをTwitterやASKfmやSarahahやPeingなどに設定すると、解像度が高くてカラフルなアイコンを使っている友達に一歩差をつけることができるといいですね。

More information...