Coder Social home page Coder Social logo

5l1v3r1 / fontedit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ayoy/fontedit

0.0 1.0 0.0 1.61 MB

A desktop app to import, edit and export fonts as byte arrays for use in embedded systems

Home Page: https://kapusta.cc/fontedit

License: GNU General Public License v3.0

CMake 4.36% C++ 94.60% C 0.11% Inno Setup 0.93%

fontedit's Introduction

FontEdit

FontEdit is a desktop application that allows you to convert general-purpose fixed-width desktop fonts to byte array representation that's suitable for use in embedded systems displays.

It's written in C++ with Qt UI and was tested on Windows, Linux and MacOS.

Read more about it in the blog post.

FontEdit

Features

With FontEdit you can:

  • import fonts from the operating system - to load a custom font, you should first register it in your OS,
  • edit individual font glyphs after importing - automatic import is a best-effort operation and although the font should be usable right after importing, you might want to tweak it so that it looks better,
  • add new glyphs to a font document - either by copying an existing glyph, starting from scratch or adding a glyph from a character you input (useful for adding non-ASCII characters to your font),
  • export the font as source code (in a form of byte array) suitable for Arduino, C/C++ or Python,
  • save your progress to a file - the font document file is cross-platform so you can e.g. import and edit it on MacOS and then move to RPi and export the code from there,
  • as of 1.1.0 you can do partial exports, i.e. export only a bunch of font characters that you really need for your application (read more in this blog post).

Font Editor

You can edit font glyphs with a minimal editor that's controlled with a mouse and keyboard. Click and drag the mouse to set pixels (making them black), hold Alt or Ctrl (⌘) to erase. Use touchpad scroll (mouse wheel) with Ctrl (⌘) to zoom the editor canvas.

You can also reset the current glyph or the whole font to their initial state (from latest save). The editor supports Undo/Redo for most operations.

Source Code Export

The font data can be exported to:

  • a C file (also suitable for use with C++),
  • an Arduino-specific C file (using PROGMEM),
  • a Python list or bytes object (both compatible with Python 2.x/3.x and MicroPython).

You can switch between MSB and LSB mode, invert all the bits, and conditionally include line spacings in font definition (not recommended unless you have a very good reason for it). The tab size can be configured.

Getting FontEdit

Packages

The Releases GitHub page contains packages for:

  • Ubuntu/Debian (amd64),
  • Raspbian Buster (armhf),
  • MacOS,
  • Windows.

Building from source

Prerequisites:

  • Qt (tested with >= 5.9)
  • cmake (3.9 or newer)
  • C++ compiler that supports C++17

Follow these steps to build the app from the source code:

  1. Clone the Git repository:

    $ git clone https://github.com/ayoy/fontedit
    $ cd fontedit
    
  2. Check out Git submodules:

    $ git submodule update --init
    
  3. Build with CMake:

    $ mkdir build
    $ cd build
    $ cmake -DCMAKE_BUILD_TYPE=Release ..
    $ make
    
  4. (Optionally) Install on Linux with: make install or create a dmg image on MacOS with make dmg.

Bugs, ideas, improvements

Please report bugs and feature requests via GitHub Issues or as a pull request.

License

© 2020 Dominik Kapusta

This app is distributed in accordance with GPL v3. See LICENSE for details. The app uses icons from www.flaticon.com made by Smashicons, Freepik and Pixel perfect.

fontedit's People

Contributors

ayoy avatar

Watchers

 avatar

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.