How To Create TrueType From An Image

making-truetype-fonts-from-images

[Viacheslav] wanted his virtual terminal to have the look of a DEC VT220. He was unable to find a font set that looked just right so he set out to make his own TrueType font. He managed to find a sample image of the glyphs that the VT220 used as fonts. Using a collection of free software he sliced the image into 256 different parts, resized and converted to one-bit index images, and converted these to vector graphics. This was accomplished with a bit of python, an image tracing program, and font editor called FontForge.

Take some time to dabble with these font tools. With an adequate sample you should be able to reproduce any font set. We won’t achieve anything as sophisticated as the font printed with bacteria, but this will be a start in the right direction.

13 thoughts on “How To Create TrueType From An Image

  1. Brings back memories! The neat thing about real VT200s is that they had a programmable font set. So naturally I created an upside-down version. Good for a laugh on April Fool’s day, just had to transmit the upside-down font to the VT220.

  2. It’s nice and retro, but I prefer bitmapped fonts.

    I use “LucidaTypewriter sans” at 9pt (no bold allowed), which makes the text in gnome-terminal look exactly like the old Solaris OpenWindows ‘cmdtool’.

  3. It should be used at sizes that result in pixel heights that are multiples of 20. Otherwise, interlaced lines just don’t work right, I probably can’t help it. I don’t know many terminal programs that don’t allow setting custom size (like 15): if the size is not in the list, usually you can enter it manually. Some font scalers are better than others, too.

    @tnt23: arduino debugging must be much easier with this font in the serial terminal ;)

  4. Fantastic work. I’ve been after a VT font for ages. I’m now using it in PuTTY. If anybody wants to know the correct setting to get all the line drawing characters etc, feel free to email me via the link on my site.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.