X-Face

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Fix indent)
(Added Datula-safe versions of extended X-Face)
Line 38: Line 38:
 
* [http://faces.sourceforge.net/Documents/faces.txt faces man page], "XFACE SUPPORT" section, has an example.
 
* [http://faces.sourceforge.net/Documents/faces.txt faces man page], "XFACE SUPPORT" section, has an example.
 
* https://stgiga.github.io/X-FacePlusFaceAll48pxHeaders.txt - Sample of regular X-Face, Face (Base64+PNG), & the 48x48 x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB).
 
* https://stgiga.github.io/X-FacePlusFaceAll48pxHeaders.txt - Sample of regular X-Face, Face (Base64+PNG), & the 48x48 x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB).
 +
** https://stgiga.github.io/X-FacePlusFaceAll48pxHeaders.txt - Sample of regular X-Face, Face (Base64+PNG), & the 48x48 x-face-el extended X-Face types (8-bit grayscale & animated 3bpp RGB, in a way that works on Datula).
 
* https://stgiga.github.io/QuadFace.gif - A GIFski GIF rendering of the above, assembled into a 96x96 square cell (useful if everything is 48x48) that modern UIs would prefer.
 
* https://stgiga.github.io/QuadFace.gif - A GIFski GIF rendering of the above, assembled into a 96x96 square cell (useful if everything is 48x48) that modern UIs would prefer.
  
 
* 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/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.
  

Revision as of 00:50, 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

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox