Bits'n'picas ist eine Reihe von Tools zum Erstellen und Umwandeln von Bitmap- und Emoji -Schriftarten.
Auf Bitmap -Schriftfunktionen können sowohl mit einer GUI als auch mit einer Befehlszeile zugegriffen werden. Mit Emoji -Schriftfunktionen können nur aus einer Befehlszeile zugegriffen werden.
Starten Sie das Bits'n'picas Jar ohne Argumente oder mit dem Befehl edit , um die Bitmap -Schriftartitor -GUI zu öffnen.
java -jar BitsNPicas.jar
java -jar BitsNPicas.jar edit
java -jar BitsNPicas.jar edit myfont.sfd
Das Eingabeformat wird durch die Dateierweiterung der Eingabedatei bestimmt. Zu den unterstützten Eingangsformaten gehören:
.kbitx - Bits'n'picas 2.x Native Save -Format.kbits - Bits'n'picas 1.x Native Save -Format.sfd - fontforge (nur Bitmaps; umrissen nicht unterstützt).bdf - x11 Bitmap -Verteilungsformat.psf , .psfu , .psf.gz , .psfu.gz - PC Screen -Schriftart.suit.dfont - Mac OS Classic -Schriftkoffer (in der Datengabel).nfnt - Mac OS Classic -Schriftressource (in der Datengabel).png - sfont oder rFont, Erweiterung der Kreativsoftware von SFONT.png , .jpg , .jpeg , .gif , .bmp - aus dem Bild erstellen (nur GUI).bin , .rom - Erstellen Sie aus der Binärdatei (nur GUI).hex - GNU Unifont Hex -Format.cvt - Geos -Schrift im Konvertierformat (einschließlich Mega -Schriftarten).fzx - FZX von Andrew Owen (für ZX -Spektrum).u8m - U8/M (UTF -8 für Mikrocomputer).font - Amiga Bitmap -Schrift (nur Schwarzweiß; Farbe nicht unterstützt).fnt - Windows .fnt Format (nicht das gleiche wie .fon ; Vektor -Schriftarten nicht unterstützt).fnt , .ftx - ibm dos/v fontx2 Format.fnt , .mgf , .mpf - Mousepaint/MOUSGRAPHICS -Toolkit -Schriftart.fnt , .rbf , .rb11 , .rb12 - Rockbox -Schriftformat.fnt , .fntz , .fnty , .cyf - Cybiko -Schriftformat.fnt , .png - PlayDate -Schriftformat.set - Apple II Hi -Res -Zeichengenerator Zeichensatz.hmzk - MI Band 2 Schriftformat.dsf - dosstart! von Daniel L. schön.sbf - Sabriel Bitmap -SchriftartUnter Mac OS X können Sie auch eine Schriftart Datei auf die Bits'n'picas -Anwendung starten oder fallen lassen.

Bits'n'picas können auch Schriftarten, Desk -Zubehör und Systemkoffer öffnen und sich um Schriftarten, Schreibtischzubehör, Skripte, Tastaturlayouts und Geräusche bewegen, genau wie der Finder in den guten alten Tagen von System 7 zurückkehren konnte.

Eine ähnliche Schnittstelle besteht auch für Geos -Schriftarten.

Beispiel:
java -jar BitsNPicas.jar convertbitmap -f ttf -o myfont.ttf myfont.sfd
Dadurch werden die Bitmap -Streiks in der Fontforge -Datei myfont.sfd in eine neue TrueType -Schriftart myfont.ttf umrissen. Wenn beispielsweise die Bitmap-Streiks 16 Pixel in Höhe betragen, stimmen die erzeugten Umrisse dem Pixel-Gitter mit einer Schriftgröße von 16 Punkten perfekt überein.
Das Eingabeformat wird durch die Dateierweiterung der Eingabedatei bestimmt. Zu den unterstützten Eingangsformaten gehören:
.kbitx - Bits'n'picas 2.x Native Save -Format.kbits - Bits'n'picas 1.x Native Save -Format.sfd - fontforge (nur Bitmaps; umrissen nicht unterstützt).bdf - x11 Bitmap -Verteilungsformat.psf , .psfu , .psf.gz , .psfu.gz - PC Screen -Schriftart.suit.dfont - Mac OS Classic -Schriftkoffer (in der Datengabel).nfnt - Mac OS Classic -Schriftressource (in der Datengabel).png - sfont oder rFont, Erweiterung der Kreativsoftware von SFONT.hex - GNU Unifont Hex -Format.cvt - Geos -Schrift im Konvertierformat (einschließlich Mega -Schriftarten).fzx - FZX von Andrew Owen (für ZX -Spektrum).u8m - U8/M (UTF -8 für Mikrocomputer).font - Amiga Bitmap -Schrift (nur Schwarzweiß; Farbe nicht unterstützt).fnt - Windows .fnt Format (nicht das gleiche wie .fon ; Vektor -Schriftarten nicht unterstützt).fnt , .ftx - ibm dos/v fontx2 Format.fnt , .mgf , .mpf - Mousepaint/MOUSGRAPHICS -Toolkit -Schriftart.fnt , .rbf , .rb11 , .rb12 - Rockbox -Schriftformat.fnt , .fntz , .fnty , .cyf - Cybiko -Schriftformat.fnt , .png - PlayDate -Schriftformat.set - Apple II Hi -Res -Zeichengenerator Zeichensatz.hmzk - MI Band 2 Schriftformat.dsf - dosstart! von Daniel L. schön.sbf - Sabriel Bitmap -Schriftart Das Ausgangsformat wird durch die Option -f bestimmt. Unterstützte Ausgangsformate umfassen:
kbitx oder kbnp2 - bits'n'picas 2.x natives Save -Formatkbits oder kbnp1 - bits'n'picas 1.x natives Speicherformatttf oder truetype - TrueTypeotb - OpenType Bitmapbdf - X11 Bitmap -Verteilungsformatpsf , psf2 , psf1 , psfgz , psf2gz , psf1gz - PC Screen -Schriftartsuit - Mac OS Classic -Schriftkoffer (in der Ressourcengabel)dfont - Mac OS Classic -Schriftkoffer (in der Datengabel)nfnt - Mac OS Classic -Schriftressource (in der Datengabel)png oder sfont - SDL SFONTrfont - RFONT, Erweiterung der Kreativsoftware von SFONThex - GNU Unifont Hex -Formatcvt oder geos - GEOS -Schrift im Konvertieren -Format (mit Mega -Option)fzx - FZX von Andrew Owen (für ZX -Spektrum)u8m - U8/M (UTF -8 für Mikrocomputer)font oder amiga - Amiga -Bitmap -Schrift (nur schwarz und weiß; Farbe nicht unterstützt)fnt oder fnt3 - Windows 3.x .fnt Format (nicht das gleiche wie .fon )fnt2 - Windows 2.x. .fnt -Format (auch nicht das gleiche wie .fon )fontx2 , fontx oder dosv - IBM DOS/V FONTX2 -Formatmgtk , mgf , mpf oder mousepaint - Mousepaint/MouseGraphics Toolkit -Schriftartrb12 - Rockbox -Schriftformat für Rockbox 2.3 oder höherrb11 - Rockbox -Schriftformat für Rockbox 2.2 oder darunter und iPodlinuxcybiko - Cybiko -Schriftformatplaydate , playdate-allinone , playdate-fnt -PlayDate-Schriftformat, All-in-One (einzelne .fnt-Datei)playdate-separate , playdate-fnt+png -PlayDate-Schriftformat, separate .fnt- und .png-Dateienhrcg oder set - Apple II Hi -RES -Zeichengenerator -Zeichensatzsatzhmzk - MI Band 2 Schriftformatsbf - Sabriel Bitmap -SchriftartWeitere Optionen sind:
-s Regex -r Ersatz -Führen Sie einen Such -und -Replace auf dem Schriftnamen durch.-b -Wenden Sie einen Faux -Ball -Effekt an.-w -Einheiten -h -Einheiten -Geben Sie die Breite und Höhe der Pixel in EM -Einheiten an (für ttf -Format).-i FONTID -z -Größe -Geben Sie die Schrift -ID und die Schriftgröße an (für nfnt oder geos -Format). Sie können eine Liste aller Optionen mit der Option --help sehen.
sbix -Format von Apple java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
Dadurch extrahiert die Bilder aus AppleColorEmoji.ttf in das Verzeichnis AppleColorEmoji.ttf.sbix.d als PNG -Dateien. In diesem Verzeichnis wird es mehrere nummerierte Unterverzeichnisse geben. Die Zahl entspricht den Pixeln pro Em der Bilder innerhalb. (Dies ist nicht unbedingt dasselbe wie die Bildhöhe!) Die resultierende Verzeichnisstruktur sieht aus wie:
AppleColorEmoji.ttf
AppleColorEmoji.ttf.sbix.d
20
glyph_43.png
glyph_44.png
...
32
glyph_43.png
glyph_44.png
...
...
java -jar BitsNPicas.jar extractsvg EmojiOne.otf
Dadurch wird die SVG -Bilder von EmojiOne.otf in das Verzeichnis EmojiOne.otf.svg.d als unkomprimierte SVG -Dateien extrahiert. (Wenn die SVG -Daten in der Schrift komprimiert sind, wird sie dekomprimiert.) Die resultierende Verzeichnisstruktur sieht aus wie:
EmojiOne.otf
EmojiOne.otf.svg.d
glyph_2.svg
glyph_3.svg
...
CBDT / CBLC -Format von Google java -jar BitsNPicas.jar extractcbdt NotoColorEmoji.ttf
Dies extrahiert die PNG -Bilder aus NotoColorEmoji.ttf in das Verzeichnis NotoColorEmoji.ttf.cbdt.d . In diesem Verzeichnis wird es eine oder mehrere nummerierte Unterverzeichnisse geben. Die Zahl ist einfach der Index des Bitmapsize -Datensatzes und hat keine andere Bedeutung. Die resultierende Verzeichnisstruktur sieht aus wie:
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
In der metadata.txt -Datei in jedem Unterverzeichnis werden alle Werte aus den verschiedenen Datenstrukturen innerhalb der CBLC und CBDT -Tabellen aufgeführt. In der fontinfo.txt -Datei werden nur einige andere Werte aus anderen, nicht verwandten Tabellen für die Bequemlichkeit aufgeführt (da viele Schriftartredakteure keine Schriftarten mit CBDT / CBLC -Tabellen öffnen können, damit Sie diese Werte aufgrund des Mangels an glyf / loca -Tabellen finden können).
COLR / CPAL -Format COLR / CPAL -Format von Microsoft wird derzeit nicht unterstützt.
Um eine Emoji/Farb -Schriftart zu erstellen, benötigen Sie zwei Dinge:
sbix -Format von Apple java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
Dadurch wird die TrueType -Schriftart MyEmoji.ttf und die Bilder im Verzeichnis MyEmoji.ttf.sbix.d erfolgen und eine neue TrueType -Schriftart MyEmoji.ttf.sbix.ttf mit Bildern in einer sbix -Tabelle generieren. Sie können diese Datei dann umbenennen, wenn Sie möchten. Der Name jedes Unterverzeichnisses innerhalb des Bildverzeichnisses muss die Pixel pro Em der Bilder sein, die es enthält. (Dies ist nicht unbedingt dasselbe wie die Bildhöhe!) Der Dateiname jedes Bildes in jedem Unterverzeichnis muss vom Formular glyph_123.png (mit dem Glyphenindex in Decimal) oder char_ABCD.png (mit dem Unicode -Codepunkt in Hexadezimal) sein. Die untere linke Position jedes Bildes wird durch die minimalen X- und Y -Koordinaten der entsprechenden Glyphen in der TrueType -Schriftart bestimmt. (Für Apple Color Emoji wird dies einfach auf 0,0 eingestellt.)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
Dadurch werden die OpenType -Schriftart MyEmoji.otf und die SVG -Bilder im Verzeichnis MyEmoji.otf.svg.d erfolgen und eine neue OpenType -Schriftart MyEmoji.otf.svg.otf mit Bildern in einer SVG -Tabelle generieren. Sie können diese Datei dann umbenennen, wenn Sie möchten. Der Dateiname jedes Bildes innerhalb des Bildverzeichnisses muss von der Form glyph_123_456.svg (für einen Bereich von Glyphen, mit den Glyphenindizes in Decimal), glyph_123.svg (für einen einzelnen Glyphen, mit dem Glyphen -Index in den Glyphen) oder einem einzelnen Glyph -Index in einem Glyph -Index (für einen einzelnen Glyph -Index) oder char_ABCD.svg (für einen einzelnen Glyph, mit dem Uniccode) oder in einem einzigen Glyph -Index sein.
Für jeden Glyphenindex, der einem SVG -Dokument zugeordnet ist, muss in diesem Dokument ein Element mit einer ID enthalten, die diesem Glyphenindex entspricht (z. B. id="glyph123" für den Glyphenindex 123). Da Sie den Glyph -Index möglicherweise nicht kennen, wenn Sie einen Codepunkt im Bilddateinamen angeben, können Sie die Platzhalter id="glyph{{{0}}}" verwenden und er wird während des Injektionsprozesses durch den entsprechenden Glyph -Index ersetzt.
Wenn Sie die Option -z vor dem Namen der Schriftart Datei angeben, werden die SVG -Daten mit GZIP komprimiert. Microsoft behauptet, das SVG-in-Opentype-Format unterstützt dies, und die Verfügbarkeit einer Version von Emojion mit GZIP-komprimierten SVG-Glyphen scheint dies zu unterstützen. Ich konnte jedoch keine Schriftarten mit GZIP-komprimierten SVG-Glyphen erhalten, um selbst in der neuesten Version von Firefox zum Zeitpunkt dieses Schreibens zu arbeiten, daher empfehle ich dies nicht.
Wenn Sie eine Reihe von Nicht-SVG-Bildern haben, die Sie mit diesem Format injizieren möchten, können Sie leicht SVGs mit eingebetteten Bildern unter Verwendung eines Befehls wie folgt erstellen:
java -jar BitsNPicas.jar imagetosvg -x 0 -y -700 -w 800 -h 800 myimages/*.png
Dadurch wird für jede angegebene Nicht-SVG-Bilddatei eine entsprechende SVG-Datei erstellt. Die Optionen -x , -y , -w , -h -Optionen geben die Position und Größe des Bildes in EM -Einheiten an. Beachten Sie, dass die SVG Y-Achse aus der Truetype y-Achse umgekehrt wird, sodass die negativen y-koordinaten über der Grundlinie liegen und positive y-Koordinate unter der Grundlinie liegen.
CBDT / CBLC -Format von Google java -jar BitsNPicas.jar injectcbdt MyEmoji.ttf
Dadurch wird die TrueType -Schriftart MyEmoji.ttf und die PNG -Bilder im Verzeichnis MyEmoji.ttf.cbdt.d erfolgen und eine neue TrueType -Schriftart MyEmoji.ttf.cbdt.ttf mit Bildern generieren, die in einer CBDT -Tabelle eingebettet sind. Sie können diese Datei dann umbenennen, wenn Sie möchten. Für jede Bitmap -Größe muss es ein Unterverzeichnis geben. Die Namen der Unterverzeichnisse spielen keine Rolle. Der Dateiname jedes Bildes in jedem Unterverzeichnis muss vom Formular glyph_123.png (mit dem Glyphenindex in Decimal) oder char_ABCD.png (mit dem Unicode -Codepunkt in hexadezimal) sein.
Es wird empfohlen, dass jedes Unterverzeichnis auch eine Wertedatei mit metadata.txt enthält, die für die verschiedenen Datenstrukturen innerhalb der CBLC und CBDT -Tabellen verwendet werden soll. Das Folgende wird mindestens empfohlen:
horiAscender: *ascent in pixels (normally positive)*
horiDescender: *descent in pixels (normally negative)*
horiWidthMax: *max character width in pixels*
vertAscender: *ascent in pixels (normally positive)*
vertDescender: *descent in pixels (normally negative)*
vertWidthMax: *max character width in pixels*
ppemX: *pixels per em*
ppemY: *pixels per em*
glyph: *glyph index*
height: *image height in pixels*
width: *image width in pixels*
bearingX: *x offset in pixels*
bearingY: *y offset in pixels (positive is above the baseline)*
advance: *character width in pixels*
endGlyph
Für den Glyphenindex können Sie auch char_ABCD (mit dem Unicode -Codepunkt in hexadezimal) oder * verwenden, um alle nicht sonst angegebenen Glyphen abzudecken. Felder, die mit der Datenstruktur selbst verbunden sind (verschiedene Offsets, Zählungen und Glyph -Indexbereiche sowie alles, was den verschiedenen Arten von Indexuntertspielen zugeordnet ist) müssen nicht angegeben werden, werden ignoriert, wenn sie angegeben sind und automatisch berechnet werden. (Index -Subtable Format 1 und Bitmap -Datenformate 17, 18 und 19 werden unabhängig von den angegebenen Metadaten verwendet.)
Standardmäßig entfernt injectcbdt auch alle glyf , loca , CFF oder CFF2 -Tabellen aus der Schriftart. Um diese Tabellen aufzubewahren, geben Sie die Option -g vor dem Namen der Schriftart Datei an.
COLR / CPAL -Format COLR / CPAL -Format von Microsoft wird derzeit nicht unterstützt.