Glyphe inversé: Bitmap> SVG via AutoTrace> Glyphe via Fontforge
Question
J'essaie de créer une police / glyphe par:
- Prendre une image bitmap
- Création d'un SVG avec AutoTrace (sur Linux)
- Importation du contour comme glyphe avec Python-Fontforge (glyph.importlines (SVGFILE))
Cela fonctionne bien
Source Bitmap:
SVG AutoTracéd:
police résultante:
La solution
a résolu cela simplement en utilisant Potrace au lieu d'AutoTrace.
Pour référence, ce sont les étapes:
Convertir bitmap en svg (ligne de commande Linux):
potrace -s sourceimg.bmp
Utilisez SVG comme glyphe (Python):
import fontforge
font = fontforge.open('blank.sfd')
glyph = font.createMappedChar('A')
glyph.importOutlines('sourceimg.svg')
font.generate('testfont.ttf')
C'est ça, résulte ci-dessous pour une utilisation sur un site Web:
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>
Autres conseils
Vous pouvez essayer d'inverser le chemin, je ne sais pas s'il y a une option dans Fontforge qui vous permet de le faire, mais vous pouvez le faire avec de l'encre (chemin> inverse).
Il semble que votre glyphe soit dessinée à la main. Si vous voulez faire une police TTF complète avec des dizaines ou des centaines de glyphes, vous pourriez considérer, par exemple. ScanaHand que j'ai utilisé pour générer des polices dessinées à la main. Il utilise un modèle sur lequel vous dessinez (ou coller) des lettres, de sorte qu'ils viennent dans la position verticale droite. La position horizontale (et l'espacement) est calculée automatiquement au moins dans [A-ZA-Z] (peut être à l'avenir également d'autres lettres).
Mais j'apprécie Votre solution car elle utilise des outils de source gratuits ou open-open et vous avez presque totalement le contrôle (par exemple . Espacement). Et la plus belle chose avec Potrace et Fontforge est que vous pouvez le faire à la volée ou faire un service de création de polices en ligne! Potrace est porté sur AS3 (Ça fonctionne, j'ai testé) et maintenant également dans JS ( https://github.com/antimatter15/js-poTrace ou https://github.com/dunvi/potrace-js ), il devrait également être possible de créer une fenêtre de prévisualisation en temps réel, qui montre comment la vectorisation résulte des modifications lorsque les paramètres de Potrace changent.