2012-10-03 19 views
6

Ich versuche, eine Schriftart/Glyphen erstellen von:Inverted Glyphe: Bitmap> SVG über Autotrace> Glyphe über Fontforge

  • ein Bitmap-Bild unter
  • ein SVG mit Autotrace Erstellen (unter Linux)
  • den Umriss als Glyphe mit python-Fontforge Import (glyph.importOutlines (svgfile))

Dies funktioniert der Ausnahme, dass die resultierende Glyphe in invertiert (siehe im Alter). Irgendeine Idee, wie dies verhindert werden kann, wie die SVG oder Glyphe invertiert werden kann, oder etwas ähnliches?

Quelle Bitmap: source bitmap

autotraced SVG: enter image description here

Resultierende font: enter image description here

Antwort

13

löste dies einfach mit potrace anstelle von Autotrace.

als Referenz, das sind die Schritte:

convert Bitmap SVG (Linux Befehlszeile):

potrace -s sourceimg.bmp 

Verwendung SVG als Glyphe (Python):

import fontforge 
font = fontforge.open('blank.sfd') 
glyph = font.createMappedChar('A') 
glyph.importOutlines('sourceimg.svg') 
font.generate('testfont.ttf') 

Das ist es , Ergebnis unten für die Verwendung auf einer Website:

css:

@font-face 
{ 
font-family: testfont; 
src: url('testfont.ttf'); 
} 

html:

<span style="font-family:testfont; font-weight:normal; color:green;">A</span> 
<span style="font-family:testfont; font-weight:bold; color:green;">A</span> 

enter image description here

1

Sie könnten versuchen, den Weg zu umkehren, nicht sicher, ob eine Option gibt es in Fontforge, die Sie lassen sich mach das, aber du kannst es mit inkscape (Path> Reverse) machen.

+0

danke erik, ich habe Ihren Vorschlag versucht, leider scheint es nicht den Trick zu tun ... – Hoff

0

Es scheint, dass Ihre Glyphe Hand gezogen wird. Wenn Sie eine vollständige TTF-Schriftart mit Dutzenden oder Hunderten von Glyphen erstellen möchten, sollten Sie z. Scanahand, die ich für die Erstellung von Hand gezeichneten Schriftarten verwendet habe. Es verwendet eine Vorlage, auf der Sie Buchstaben zeichnen (oder einfügen), so dass sie in der richtigen vertikalen Position kommen. Horizontale Position (und Abstand) werden mindestens in [A-Za-z] automatisch berechnet (möglicherweise in Zukunft auch andere Buchstaben).

Aber ich schätze your solution, weil es freie oder Open-Source-Tools verwendet und Sie fast die volle Kontrolle über alles haben (z. B. Abstände). Und das Beste an potrace und fontforge ist, dass Sie es on-the-fly machen oder einen Online-Font-Erstellungsservice erstellen können! Potrace ist portiert auf AS3 (es funktioniert, ich getestet) und jetzt auch in JS (https://github.com/antimatter15/js-potrace oder https://github.com/dunvi/potrace-js), so dass es auch möglich sein sollte, ein Echtzeit-Vorschau-Fenster, das zeigt, wie Vektorisierungsergebnis ändert sich, wenn sich Parameter ändert.