Giter VIP home page Giter VIP logo

bdf2sfd's Introduction

bdf2sfd

bdf2sfd is a BDF to SFD converter, allowing to vectorize bitmap fonts. It works by converting each pixel of a glyph to a polygon, which produces large and unoptimized SFD files that should be post-processed using FontForge.

There are several reasons why it might be desirable to convert bitmap fonts to OpenType or TrueType versions. This allow for example to use them as Web fonts, or simply to keep using them in some terminal emulators, since Pango 1.44 dropped support for bitmap fonts.

It was originally created to generate OpenType versions of Spleen, and is released in the hope it can be useful to convert other fonts as well. Please be aware that it works best on fonts proportional to 8x16. Other sizes will work but the aspect ratio will not be preserved. There is currently little interest in addressing the issue.

bdf2sfd is written with security in mind and is running sandboxed on OpenBSD (using pledge). Experimental seccomp support is available for selected architectures and can be enabled by setting the ENABLE_SECCOMP variable to 1 when invoking CMake. It has also been extensively fuzzed using AFL and Honggfuzz.

Dependencies

bdf2sfd uses the CMake build system and does not requires any external dependencies.

mkdir build
cd build
cmake ..
make

bdf2sfd has been successfully built and tested on OpenBSD, NetBSD, FreeBSD, and Linux with both Clang and GCC.

Packages

bdf2sfd packages are available for:

Usage

bdf2sfd [-hv] [-f name] [-p name] font.bdf

If file is a single dash (`-'), bdf2sfd reads from the standard input.

The options are as follows:

-f name	Specify font name.
-p name	Specify PostScript font name.
-h	Display usage.
-v	Display version.

bdf2sfd outputs SFD data to stdout.

Post-processing

The SFD files created by bdf2sfd should be post-processed with FontForge in order to remove overlap and simplify shapes.

This can be done as follow:

fontforge -lang ff -c 'Open("spleen.sfd"); SelectAll(); RemoveOverlap(); Simplify(-1, 1); Save("spleen.sfd")'

Producing OTF and TTF fonts

After post-processing, OpenType and/or TrueType fonts can be produced as follow:

For OTF fonts:

fontforge -lang ff -c 'Open("spleen.sfd"); Generate("spleen.otf")'

For TTF fonts:

fontforge -lang ff -c 'Open("spleen.sfd"); Generate("spleen.ttf")'

License

bdf2sfd is released under the BSD 2-Clause license. See LICENSE file for details.

Author

bdf2sfd is developed by Frederic Cambus.

Resources

GitHub: https://github.com/fcambus/bdf2sfd

Packaging status

Packaging status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.