X-Face

From Just Solve the File Format Problem
Revision as of 21:41, 25 September 2025 by St. GIGA (Talk | contribs)

Jump to: navigation, search
File Format
Name X-Face
Ontology
Extension(s) .face, .xface
Spec https://purl.org/x-face-spec
Released ~1990

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 (apart from its extensions to support color, bigger images, and animation) image. The format appears to be fairly complex, and probably uses arithmetic coding.

Contents

Discussion

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 (a behavior that can potentially break the format's improvement extensions). 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.

Most or all X-Face code is based on James Ashton's Compface software, and Compface's code is fairly opaque. A specification has been written by reverse-engineering Compface.

Compface intermediate format

The Compface software by default converts X-Face to and from the Ikon format. It only supports 48×48 images with a bit depth of 1. Most implementations use 16-bit words but one implementation[1] uses 8-bit words.

Software

  • Datula - A Japanese e-mail client which supported plugins in versions such as 1.52.01.01, two of which involved extended X-Face.
    • Datula DFaceEX X-Face Plugin - An X-Face viewer plugin for Datula capable of viewing extended X-Faces.
    • XFacePlugin with FaceMake - Another viewer plugin by the same author (saku/Saku works) which includes a program called FaceMake which, on the latest version (Datula's is, but the version of FaceMake shipped in X-FaceTool004, a version for e-mail clients like EdMax and Eudora, among others, isn't) combines the X-Face-el extensions into a unified format of 24-bit RGB with animation (needs to be done frame-by-frame, but the decoder will happily decode it, at least where Datula is concerned) and beyond-48x48px. The 24-bit support in FaceMake doesn't exist in the build bundled with X-FaceTool004, unlike the FaceMake for Datula's X-Face plugin that it is bundled with. FaceMake is also picky.

Samples

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox