The way outline fonts (such as ttf) work is by defining a set of curves by vector graphics (quadratic Bézier in the case of ttf). What is inside or outside? At the moment of rendering the target area has a set of pixel where the character will be drawn. The following is a simplification of the algorithm to do so: - Go row by row: - Start by considering we are "outside" - If we are "outside" and we crossed an outline, are now "inside" - If we are "inside" and we crossed an outline, are now "outside" - If the current pixel is "inside" color it - Advance to the next pixel Visually: These are the outlines: [![Outlines only][1]][1] Now, we start outside. We advance to the first pixel. We have not crossed any outline, so the pixel is outside and we don't color it (highlighted in ligh gray): [![Onlines plus first square in ligh gray][2]][2] We are outside, We advance to the next pixel. We crossed an outline, so now we are inside. Since the pixel is inside, color it: [![Outlines plus first square in light gray and second square in blue][3]][3] Continue advancing, we don't cross any outline for the next few pixels - so we keep coloring them: [![Outlines plus first square in light gray and a row of squares in blue][4]][4] When we cross the other outline we are outside again: [![Outlines plus first square in light gray, a row of squares in blue, and the following squares in light gray][5]][5] If we do this for each row, we will have the character fully colored: [![Outlines plus all squares colored][6]][6] Note: this is disregarding antialias, subpixels, and any transformation applied to the character. For a more detailed explanation (and a bit of history) see the video [The Font Magicians - Computerphile ](https://www.youtube.com/watch?v=jAdspOtgciQ). --- **Getting the inverse outline** Now, see what happens if I **remove the exterior outline**: [![Outlines minus the exterior one][7]][7] If we follow the steps described above, the result is this: [![Outlines minus the exterior one plus all squares colored][8]][8] **Note**: To do this in FontCreator select all the points - and only the points - of the exterior outline and hit delete. Adjust the size and position of the character as needed. --- **Getting the inverse bitmap** Also if you are rendering without antialias, you may always take the character bitmap... [![Outlines plus all squares colored][6]][6] Fill the exterior (that may be tricky, as you need to start a flood fill on a pixel that you know is outisde, the key is to check the color first): [![Negative of: Outlines minus the exterior one plus all squares colored][9]][9] And then get the inverse of the image: [![Outlines minus the exterior one plus all squares colored][8]][8] Note: this is proably ruined if you have antialias. [1]: https://i.sstatic.net/xRnSd.png [2]: https://i.sstatic.net/QGGEt.png [3]: https://i.sstatic.net/Vtsgi.png [4]: https://i.sstatic.net/8jU5V.png [5]: https://i.sstatic.net/Ih7VH.png [6]: https://i.sstatic.net/LVydf.png [7]: https://i.sstatic.net/zI2VZ.png [8]: https://i.sstatic.net/SsksB.png [9]: https://i.sstatic.net/UDQpI.png