X-Face
m |
m (Include properly-folded headers in the Datula example (intended to be the pinnacle example), and the associated GIF now has a pixel in one frame restored. Nothing too exotic. Folding of the prior usage of Face may be done off-and-on depending on time) |
||
(16 intermediate revisions by 3 users not shown) | |||
Line 4: | Line 4: | ||
|extensions={{ext|face}}, {{ext|xface}} | |extensions={{ext|face}}, {{ext|xface}} | ||
|released=~1990 | |released=~1990 | ||
+ | | spec = https://purl.org/x-face-spec | ||
}} | }} | ||
− | '''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. | + | '''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]]. |
== Discussion == | == Discussion == | ||
Line 12: | Line 13: | ||
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. | 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. [https://purl.org/x-face-spec A specification] has been written by reverse-engineering Compface. | |
− | == | + | == Compface intermediate format == |
− | The | + | 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[http://kinzler.com/ftp/faces/compface-win/] uses 8-bit words. |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Software == | == Software == | ||
− | * [http://ibiblio.org/pub/linux/apps/graphics/convert/compface-1.4.tar.gz compface-1.4.tar.gz] (<code>uncompface -X</code> to convert to [[XBM]] format) | + | * Compface |
+ | ** [http://ibiblio.org/pub/linux/apps/graphics/convert/compface-1.4.tar.gz compface-1.4.tar.gz] (<code>uncompface -X</code> to convert to [[XBM]] format) | ||
+ | ** [http://ftp.xemacs.org/xemacs/aux/compface-1.5.2.tar.gz compface-1.5.2.tar.gz] | ||
+ | ** [https://ftp.ussg.iu.edu/solaris/freeware/SOURCES/compface-25Jan90.tar.gz compface-25Jan90.tar.gz] | ||
+ | ** [http://kinzler.com/ftp/faces/compface-win/ X-Faces for Windows 95/NT] | ||
* [[FFmpeg]] | * [[FFmpeg]] | ||
+ | * {{Deark}} | ||
+ | * [http://www.dairiki.org/xface/ Online X-Face Converter] | ||
+ | * [https://packages.debian.org/sid/x-face-el x-face-el] — extends the format, in a manner unsupported by other software, adding colour/greyscale pixels, animation, and larger image sizes | ||
+ | |||
+ | * [https://web.archive.org/web/20040405125946*/http://www.onsystems.co.jp Datula] - A Japanese e-mail client which supported plugins in versions such as [https://web.archive.org/web/20040405125946*/http://www.onsystems.co.jp:80/download/datula1.52.01.01.exe 1.52.01.01], two of which involved extended X-Face. | ||
+ | ** [https://web.archive.org/web/20001025151154/http://www.find.co.jp:80/~saku/download/dfaceex1001.zip Datula DFaceEX X-Face Plugin] - An X-Face viewer plugin for Datula capable of viewing extended X-Faces. | ||
+ | ** [https://web.archive.org/web/20080828060424/http://cgisv.chldren.net:80/~saku/xfaceplugin.html 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 == | == Samples == | ||
+ | * https://dev.mutt.org/trac/wiki/MuttGuide/XFace - Search for "compface tao.xbm". | ||
+ | * [http://kinzler.com/ftp/faces/winface/WinFace1_3-src.zip WinFace1_3-src.zip] → WinFace/default_face.txt | ||
* [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-FacePlusFaceAll48pxHeadersFix.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/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, or in a tiny gallery like Datula does. | ||
+ | |||
+ | * https://stgiga.github.io/X-FacePlusFaceAllHeadersPlus24bitFixOG.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/LushFace.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 == | ||
* [http://www.cs.indiana.edu/ftp/faces/ Faces Archive] - Lists some X-Face resources | * [http://www.cs.indiana.edu/ftp/faces/ Faces Archive] - Lists some X-Face resources | ||
* [http://faces.sourceforge.net/Documents/faces.txt faces man page] | * [http://faces.sourceforge.net/Documents/faces.txt faces man page] | ||
− | |||
* [[Wikipedia: X-Face]] | * [[Wikipedia: X-Face]] | ||
[[Category:E-Mail, newsgroups, and forums]] | [[Category:E-Mail, newsgroups, and forums]] |
Latest revision as of 06:24, 6 September 2025
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 |
[edit] 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.
[edit] 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.
[edit] Software
- Compface
- compface-1.4.tar.gz (
uncompface -X
to convert to XBM format) - compface-1.5.2.tar.gz
- compface-25Jan90.tar.gz
- X-Faces for Windows 95/NT
- compface-1.4.tar.gz (
- FFmpeg
- Deark
- Online X-Face Converter
- x-face-el — extends the format, in a manner unsupported by other software, adding colour/greyscale pixels, animation, and larger image sizes
- 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.
[edit] Samples
- 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.
- 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-FacePlusFaceAll48pxHeadersFix.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/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, or in a tiny gallery like Datula does.
- https://stgiga.github.io/X-FacePlusFaceAllHeadersPlus24bitFixOG.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/LushFace.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.
[edit] Links
- Faces Archive - Lists some X-Face resources
- faces man page
- Wikipedia: X-Face