Our X-Face converter is online
Our X-Face converter is now available at xface.alaskalabs.de. But why, actually?
We at Alaska.Labs love old internet standards. They are somehow nerdy and efficient. One standard that hardly anybody knows any more is X-Face.
The format came about in the late 80s or early 90s. The idea goes back to James Ashton, who drew heavily on the Vismon program developed at Bell Labs. Vismon used small graphics so you could recognise the people you were talking to. That approach was easy to carry over to the internet communication emerging back then: from then on, senders put small portraits, logos or symbols straight into the header of emails and Usenet posts. But its use dropped off sharply, much like any sensible use of Usenet, and today nobody remembers it any more.
Technical background
Technically, an X-Face is a 48 × 48 pixel black-and-white bitmap. That gives you a colour depth of one whole bit. The 2304 pixels together therefore amount to just 288 bytes of image data, uncompressed. Far too many bytes. That had to be made smaller. So Compface was developed, a lossless image compressor and encoder made exactly for 48 × 48 px.
So the plain 1-bit bitmap only needs 288 bytes. Historically, though, Compface does not get a 288-byte raw bitmap but typically a textual C representation with 48 lines like 0x1234,0x5678,0x9ABC. That comes to roughly 1056 bytes of ASCII text. The Compface documentation states that the compressed output averages fewer than 200 characters and therefore speaks of better than 5:1 compression. Measured against the actual 288 bytes of bitmap data the gain is much smaller: at 200 characters it would only be about 1.44:1, so around 31 % less. Still better than before. Anything else would be a waste, too.
Now the character string can be written into the header. For example:
X-Face: "O{CMTN7mt4>|mAvUYbs-3G}Qqv+8v)yhU{Pz7M!7fqo,Qh7TOGJGO#2B&<6Kf&Q
C3}52FL5;|y@R
A compatible mail or news reader reads out this header, decompresses the data again and shows the image next to the sender. Programs without X-Face support can simply ignore the extra header, so the actual content of the message is not affected by it.
So that you don’t have to do all of this by hand, there has been the online converter dairiki.org/xface for years. It’s a wonder that it ran for so long. Unfortunately you always have to send your image to the server there. Since the site is basically an internet antique, it doesn’t know about things like the GDPR either, which is sooo important to Europeans and Germans above all. So we went and solved that, and now you can generate your X-Face strings at xface.alaskalabs.de.
And why all this again? So you can then put them to good use in Alcilla: alcilla.alaskalabs.de. ;)
That’s all. Greetings from room 04 at Alaska.Labs.
This post was written in German and translated into English automatically by an LLM. The German original is authoritative; if something reads oddly, that’s on the machine.