X-Face

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (fix typo)
(Added example of Datula 24-bit mode with its secret animation mode combined with ALL X-Face-el modes and of course Face:)
Line 43: Line 43:
 
* https://stgiga.github.io/X-FacePlusFaceAllHeaders.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px).
 
* https://stgiga.github.io/X-FacePlusFaceAllHeaders.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px).
 
** https://stgiga.github.io/X-FacePlusFaceAllHeadersFix.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px, and in the way that works on Datula).
 
** https://stgiga.github.io/X-FacePlusFaceAllHeadersFix.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px, and in the way that works on Datula).
* https://stgiga.github.io/TallFace.gif - A GIFski GIF rendering of the above, assembled into a 96x144 cell that modern UIs would prefer over stringing them side-by-side like x-face-el does.
+
* https://stgiga.github.io/TallFace.gif - A GIFski GIF rendering of the above, assembled into a 96x144 cell that modern UIs would prefer over stringing them side-by-side like x-face-el does, or in a tiny gallery like Datula does.
 +
 
 +
* https://stgiga.github.io/X-FacePlusFaceAllHeadersPlus24bit.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el and Datula extended X-Face types (Datula's animated 24-bit RGB, plus x-face-el's 8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px.)
 +
* https://stgiga.github.io/RichFace.gif - A GIFski GIF rendering of the above, assembled into a 96x144 cell that modern UIs would prefer over stringing them side-by-side like x-face-el does, or in a tiny gallery like Datula does.
  
 
== Links ==
 
== Links ==

Revision as of 15:53, 29 August 2025

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 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. 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) which includes a program called FaceMake which 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) and beyond-48x48px.

Samples

  • https://stgiga.github.io/X-FacePlusFaceAllHeadersPlus24bit.txt - Sample of regular X-Face, Face (Base64+PNG), & the x-face-el and Datula extended X-Face types (Datula's animated 24-bit RGB, plus x-face-el's 8-bit grayscale & animated 3bpp RGB, including going beyond 48x48px.)
  • https://stgiga.github.io/RichFace.gif - A GIFski GIF rendering of the above, assembled into a 96x144 cell that modern UIs would prefer over stringing them side-by-side like x-face-el does, or in a tiny gallery like Datula does.

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox