X-Face is a compressed image format that can be placed in an email or Usenet newsgroup message header. It is expected to contain the sender's picture or avatar. It is a 48×48 bi-level image. The format appears to be fairly complex, and probably uses arithmetic coding.
Although X-Face data is often expected to be stored in a file, there isn't really a standard X-Face file format. The main thing to be aware of is that sometimes the "X-Face:" header name is stored in the file, and sometimes it is not. Different software has different requirements.
File extensions .face and .xface have both been suggested. Sometimes, X-Face data will be in a file named ".face" in the user's home directory.
Although a fair number of open source programs support the format, we have not been able to locate any specifications. Most or all X-Face code is based on James Ashton's Compface software, and Compface's code is fairly opaque.
Compface intermediate format
The Compface software by default converts X-Face to and from a custom format, which it describes as "48 lines each of 3 sixteen bit hexadecimal integers, comma terminated in C initialiser style." It looks something like this:
0x0000,0x0000,0x0000, 0x0000,0x4400,0x0000, 0x0000,0x7600,0x0000, 0x0002,0x6B80,0x0100, 0x0006,0x0440,0x0600, 0x0008,0x0040,0x0E00, ...
However, at least one implementation uses a format that looks like this:
0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x44,0x00,0x00,0x00, 0x00,0x00,0x76,0x00,0x00,0x00, 0x00,0x02,0x6B,0x80,0x01,0x00, 0x00,0x06,0x04,0x40,0x06,0x00, 0x00,0x08,0x00,0x40,0x0E,0x00, ...
- Online X-Face Converter
- https://dev.mutt.org/trac/wiki/MuttGuide/XFace - Search for "compface tao.xbm".
- WinFace1_3-src.zip → WinFace/default_face.txt
- faces man page, "XFACE SUPPORT" section, has an example.