X-Face

X-Face

電子メイル電子ニュースの記事で、身元識別など(謎) の目的で頭領域につける画像。

元々は48×48点の白黒画像1つを compface というプログラムで ASCII printable character にしたものでしたが、 現在では多色, 他の大きさ, 動画などを扱えるように拡張されています。

多階調 X-Face

多階調 X-Face と depth について:

2 から 8 の間の数字です。これがそのまま X-Face ヘッダーの

数になるのですが、まあ 3 か多くても 4 で何とか絵になると思います。

普通の X-Face は各画素を 0 か 1 の二値で表現した 2304 ビットのデー

タを、compface で非破壊圧縮して作っているのはご存知の通りです。

では多階調 X-Face はどうやっているかというと、例えば X-Face ヘッ

ダーが 3個ある場合は一つの画素を 3 ビットで表現し、000 から 111

までの 8 段階の明るさを表現できるようにしています。各画素の 3 ビッ

トのうち最上位ビットだけを集めて作ったのが X-Face:、真ん中のビッ

トだけを集めて作ったのが X-Face-1:、最下位ビットだけを集めて作っ

たのが X-Face-2: という具合になっています。

<mid:yosur8mw4x7s.fsf@jpl.org> (wl:09609) から引用
多階調 X-Face の document ってあるんだろうか? 謎だから x-face.el 読んで実装すべし。

カラー/マルチ X-Face (aka RGB X-Face)

<http://www.jpl.org/elips/> から入手できる x-face package の METHOD.ja より引用

4. カラー/マルチ X-Face

  マルチ X-Face とは、サイズが 48x48 の普通の X-Face を複数個組み合わ
  せて一枚の絵にするもので、カラー X-Face もその一種です。
  さて、互いに無関係な複数の、それぞれのサイズが 48x48 の絵をエンコー
  ドしてヘッダに挿入した場合、それらをデコードして表示する場合の順序や
  配置はさほど問題になりません。しかし、もっと大きな絵を複数の X-Face
  に分割したりカラーの絵を2値の三原色に分解して伝送する場合には、それ
  ぞれをデコードした後でつなぎあわせたり合成するときの順序や配置に関す
  る情報を一緒に伝送する必要があります。そのため
  X-Face-Type:
  というフィールドを創設しました。この右側には ";" で区切って ascii 文
  字で複数の情報を並べることができ、並べる順序の決まりや大文字/小文字
  の区別はありません。現在以下の二つが予約されています。
  geometry=MxN
    M と N はそれぞれ M=横幅÷48, N=高さ÷48 で求められる自然数で、こ
    れによって表示するときのサイズを表します。
  RGB
    2値の三原色に分解したカラー X-Face であることを示します。当然なが
    ら3の自然数倍の個数の X-Face フィールドがヘッダに含まれていなけれ
    ばなりません。これには必ず geometry の指定が伴っている必要があり、
    カラーイメージとして表示するときのサイズを表します。
  ;;; 他にプログラムの開発段階を表す status という要素を一時使ったこと
  ;;; がありますが、これはあえて予約語にはしないことにします。
  互いに無関係な複数または単一の X-Face フィールドをヘッダに挿入すると
  きは X-Face-Type フィールドを付ける必要はありません。これが必要なの
  は 48x48 より大きいものやカラー X-Face を伝送する場合で、必ず X-Face
  フィールドより前に挿入します。続く複数の X-Face フィールドは、以下の
  ような順序で並べます。これらの組合せ (例えば 2x1 のカラーと 1x3 のモ
  ノクロ X-Face、都合 9個の X-Face フィールドをヘッダに挿入する) も可
  です。
  X-Face-Type: geometry=3x1
  X-Face: (1)                   +---+---+---+
  X-Face: (2)                   | 1 | 2 | 3 |
  X-Face: (3)                   +---+---+---+
                                +---+
  X-Face-Type: geometry=1x3     | 1 |
  X-Face: (1)                   +---+
  X-Face: (2)                   | 2 |
  X-Face: (3)                   +---+
                                | 3 |
                                +---+
  X-Face-Type: geometry=3x2
  X-Face: (1)                   +---+---+---+
  X-Face: (2)                   | 1 | 2 | 3 |
  X-Face: (3)                   +---+---+---+
  X-Face: (4)                   | 4 | 5 | 6 |
  X-Face: (5)                   +---+---+---+
  X-Face: (6)
  X-Face-Type: RGB; geometry=1x1    +---+
  X-Face: (1 Red)                   | 1 |
  X-Face: (1 Green)                 +---+
  X-Face: (1 Blue)
  X-Face-Type: RGB; geometry=2x1
  X-Face: (1 Red)
  X-Face: (2 Red)                 +---+---+
  X-Face: (1 Green)               | 1 | 2 |
  X-Face: (2 Green)               +---+---+
  X-Face: (1 Blue)
  X-Face: (2 Blue)
  X-Face-Type: RGB; geometry=1x2
  X-Face: (1 Red)                   +---+
  X-Face: (2 Red)                   | 1 |
  X-Face: (1 Green)                 +---+
  X-Face: (2 Green)                 | 2 |
  X-Face: (1 Blue)                  +---+
  X-Face: (2 Blue)
  X-Face-Type: RGB; geometry=2x2
  X-Face: (1 Red)
  X-Face: (2 Red)
  X-Face: (3 Red)                 +---+---+
  X-Face: (4 Red)                 | 1 | 2 |
  X-Face: (1 Green)               +---+---+
  X-Face: (2 Green)               | 3 | 4 |
  X-Face: (3 Green)               +---+---+
  X-Face: (4 Green)
  X-Face: (1 Blue)
  X-Face: (2 Blue)
  X-Face: (3 Blue)
  X-Face: (4 Blue)
  これらの並びの順序は重要で、途中に別のフィールドが紛れ込むのは構いま
  せんが、 X-Face や X-Face-Type の順序が変わってしまうと元の絵を再現
  することができません。現在までのところ順序を入れ替えてしまう MUA/MTA
  に遭遇したことはありませんが、フィールドの並び順 (特に X- で始まるも
  の) に関する決まりは無いので、不幸にして壊れてしまったら諦めるしかあ
  りません。(;_;)

(引用ここまで)

動画 (animated) X-Face

X-Face に関連する領域

X-Face-Version: 領域

X-Face を出力したソフトウェアなどについての情報を入れる 非構造化頭領域。

SEE ALSO