Bits'n'picas est un ensemble d'outils pour créer et convertir les polices bitmap et emoji.
Les fonctions de police bitmap sont accessibles à la fois avec une interface graphique et à partir d'une ligne de commande. Les fonctions de police emoji ne peuvent être accessibles qu'à partir d'une ligne de commande.
Lancez le pot Bits'n'Picas sans aucun argument ou avec la commande edit pour ouvrir la GUI de l'éditeur de police bitmap.
java -jar BitsNPicas.jar
java -jar BitsNPicas.jar edit
java -jar BitsNPicas.jar edit myfont.sfd
Le format d'entrée est déterminé par l'extension de fichier du fichier d'entrée. Les formats d'entrée pris en charge comprennent:
.kbitx - Bits'n'picas 2.x Format de sauvegarde natif.kbits - Bits'n'picas 1.x Format de sauvegarde natif.sfd - FontForge (Bitmaps uniquement; contourne les lignes non prises en charge).bdf - Format de distribution de bitmap x11.psf , .psfu , .psf.gz , .psfu.gz - police d'écran PC.suit - Mac OS Classic Font Suitcase (dans la fourche de ressources).dfont - Mac OS Classic Font Suitcase (dans la fourche de données).nfnt - Mac OS Ressource de police classique (dans la fourche de données).png - SFONT ou RFONT, l'extension de SFONT par Software Kreative.png , .jpg , .jpeg , .gif , .bmp - créer à partir d'image (GUI uniquement).bin , .rom - Créer à partir de fichiers binaires (GUI uniquement).hex - Format hexalable GNU Unifont.cvt - Geos Font au format converti (y compris les méga polices).fzx - fzx par Andrew Owen (pour le spectre ZX).u8m - U8 / M (UTF-8 pour les micro-ordinateurs).font - Police Amiga Bitmap (noir et blanc uniquement; couleur non prise en charge).fnt - Format Windows .fnt (pas le même que .fon ; polices vectorielles non prises en charge).fnt , .ftx - Format IBM DOS / V FONTX2.fnt , .mgf , .mpf - police de boîte à outils Mouspaint / MouseGraphics.fnt , .rbf , .rb11 , .rb12 - Format de police rockbox.fnt , .fntz , .fnty , .cyf - Format de police cybiko.fnt , .png - Format de police de jeu.set - Apple II Hi-Res Character Generator Character Set.hmzk - MI Band 2 Format de police.dsf - DOSSTART! par Daniel L. Nice.sbf - Font Bitmap SabrielSur Mac OS X, vous pouvez également lancer ou supprimer un fichier de police sur l'application Bits'n'Picas.

Les bits'n'picas peuvent également ouvrir la police, les accessoires de bureau et les valises système et se déplacer autour des polices, des accessoires de bureau, des scripts, des dispositions de clavier et des sons, tout comme le Finder pouvait le faire dans le bon vieux temps du système 7.

Une interface similaire existe également pour les polices GEOS.

Exemple:
java -jar BitsNPicas.jar convertbitmap -f ttf -o myfont.ttf myfont.sfd
Cela convertira les frappes bitmap dans le fichier FontForge myfont.sfd en contours dans un nouveau fichier de police TrueType myfont.ttf . Si, par exemple, les coups de bitmap mesurent 16 pixels de hauteur, les contours générés correspondent parfaitement à la grille de pixels à une taille de police de 16 points.
Le format d'entrée est déterminé par l'extension de fichier du fichier d'entrée. Les formats d'entrée pris en charge comprennent:
.kbitx - Bits'n'picas 2.x Format de sauvegarde natif.kbits - Bits'n'picas 1.x Format de sauvegarde natif.sfd - FontForge (Bitmaps uniquement; contourne les lignes non prises en charge).bdf - Format de distribution de bitmap x11.psf , .psfu , .psf.gz , .psfu.gz - police d'écran PC.suit - Mac OS Classic Font Suitcase (dans la fourche de ressources).dfont - Mac OS Classic Font Suitcase (dans la fourche de données).nfnt - Mac OS Ressource de police classique (dans la fourche de données).png - SFONT ou RFONT, l'extension de SFONT par Software Kreative.hex - Format hexalable GNU Unifont.cvt - Geos Font au format converti (y compris les méga polices).fzx - fzx par Andrew Owen (pour le spectre ZX).u8m - U8 / M (UTF-8 pour les micro-ordinateurs).font - Police Amiga Bitmap (noir et blanc uniquement; couleur non prise en charge).fnt - Format Windows .fnt (pas le même que .fon ; polices vectorielles non prises en charge).fnt , .ftx - Format IBM DOS / V FONTX2.fnt , .mgf , .mpf - police de boîte à outils Mouspaint / MouseGraphics.fnt , .rbf , .rb11 , .rb12 - Format de police rockbox.fnt , .fntz , .fnty , .cyf - Format de police cybiko.fnt , .png - Format de police de jeu.set - Apple II Hi-Res Character Generator Character Set.hmzk - MI Band 2 Format de police.dsf - DOSSTART! par Daniel L. Nice.sbf - Font Bitmap Sabriel Le format de sortie est déterminé par l'option -f . Les formats de sortie pris en charge comprennent:
kbitx ou kbnp2 - Bits'n'picas 2.x format de sauvegarde natifkbits ou kbnp1 - bits'n'picas 1.x format de sauvegarde natifttf ou truetype - TrueTypeotb - OpenType Bitmapbdf - Format de distribution Bitmap X11psf , psf2 , psf1 , psfgz , psf2gz , psf1gz - Police d'écran PCsuit - Mac OS Classic Font Suitcase (dans la fourche de ressources)dfont - MAC OS Classic Font Suitcase (dans la fourche de données)nfnt - Mac OS Classic Font Resource (dans la fourche de données)png ou sfont - SDL SFONTrfont - RFONT, Extension de Sfont par Software Kreativehex - Format hexalable GNU Unifontcvt ou geos - GEOS FONT au format converti (avec une méga option)fzx - FZX par Andrew Owen (pour ZX Spectrum)u8m - U8 / M (UTF-8 pour les micro-ordinateurs)font ou amiga - POLÈRE AMIGA BITMAP (Noir et blanc uniquement; couleur non prise en charge)fnt ou fnt3 - Format Windows 3.x .fnt (pas la même chose que .fon )fnt2 - Format Windows 2.x .fnt (également pas le même que .fon )fontx2 , fontx ou dosv - FORMAT IBM DOS / V FONTX2mgtk , mgf , mpf ou mousepaint - Police à outils Mouspaint / MouseGraphicsrb12 - Format de police Rockbox pour Rockbox 2.3 ou supérieurrb11 - Format de police Rockbox pour Rockbox 2.2 ou moins et iPodlinuxcybiko - Format de police cybikoplaydate , playdate-allinone , playdate-fnt - format de police playdate, tout-en-un (fichier .fnt unique)playdate-separate , playdate-fnt+png - Format de police Playdate, fichiers .fnt et .png séparéshrcg ou set - Apple II Hi-Res Corter Generator Character Sethmzk - MI Band 2sbf - Police Sabriel BitmapLes options supplémentaires incluent:
-s Regex -r Remplacement - Effectuez une recherche-et-re-Replace sur le nom de la police.-b - Appliquez un effet bolt faux.-w unités -h unités - Spécifiez la largeur et la hauteur des pixels dans les unités EM (pour le format ttf ).-i Fontid -z Taille - Spécifiez l'ID de police et la taille de la police (pour le format nfnt ou geos ). Vous pouvez voir une liste de toutes les options à l'aide de l'option --help .
sbix d'Apple java -jar BitsNPicas.jar extractsbix AppleColorEmoji.ttf
Cela extrait les images de AppleColorEmoji.ttf dans le répertoire AppleColorEmoji.ttf.sbix.d en tant que fichiers PNG. Il y aura plusieurs sous-répertoires numérotés dans ce répertoire; Le nombre correspond aux pixels par EM des images à l'intérieur. (Ce n'est pas nécessairement la même chose que la hauteur de l'image!) La structure du répertoire résultant ressemblera:
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
Cela extraitra les images SVG de EmojiOne.otf dans le répertoire EmojiOne.otf.svg.d en tant que fichiers SVG non compressés. (Si les données SVG à l'intérieur de la police sont compressées, elles seront décompressées.) La structure du répertoire résultant ressemblera:
EmojiOne.otf
EmojiOne.otf.svg.d
glyph_2.svg
glyph_3.svg
...
CBDT / CBLC de Google java -jar BitsNPicas.jar extractcbdt NotoColorEmoji.ttf
Cela extraitra les images PNG de NotoColorEmoji.ttf dans le répertoire NotoColorEmoji.ttf.cbdt.d . Il y aura un ou plusieurs sous-répertoires numérotés dans ce répertoire; Le nombre est simplement l'indice de l'enregistrement bitmapsize et n'a pas d'autre signification. La structure du répertoire résultant ressemblera à:
NotoColorEmoji.ttf
NotoColorEmoji.ttf.cbdt.d
0000
glyph_4.png
glyph_5.png
....
metadata.txt
....
fontinfo.txt
Le fichier metadata.txt dans chaque sous-répertoire répertorie toutes les valeurs des différentes structures de données dans les tables CBLC et CBDT . Le fichier fontinfo.txt répertorie simplement certaines autres valeurs à partir d'autres tables non liées à la commodité (car de nombreux éditeurs de police ne peuvent pas ouvrir les polices avec des tables CBDT / CBLC pour que vous puissiez trouver ces valeurs en raison de l'absence de tables glyf / loca ).
COLR / CPAL de Microsoft Le format COLR / CPAL de Microsoft n'est actuellement pas pris en charge.
Pour créer une police emoji / couleur, vous aurez besoin de deux choses:
sbix d'Apple java -jar BitsNPicas.jar injectsbix MyEmoji.ttf
Cela prendra le fichier de police TrueType MyEmoji.ttf et les images du répertoire MyEmoji.ttf.sbix.d et généreront un nouveau fichier de police TrueType MyEmoji.ttf.sbix.ttf avec des images incorporées dans un tableau sbix . Vous pouvez ensuite renommer ce fichier si vous le souhaitez. Le nom de chaque sous-répertoire dans le répertoire d'image doit être les pixels par EM des images qu'il contient. (Ce n'est pas nécessairement la même chose que la hauteur de l'image!) Le nom de fichier de chaque image dans chaque sous-répertoire doit être du formulaire glyph_123.png (avec l'index de glyphe en décimal) ou char_ABCD.png (avec le point de code Unicode en hexadécimal). La position inférieure gauche de chaque image sera déterminée par les coordonnées minimum x et y du glyphe correspondant dans le fichier de police TrueType. (Pour les emoji de couleur Apple, cela se trouve juste à 0,0.)
java -jar BitsNPicas.jar injectsvg MyEmoji.otf
Cela prendra le fichier de police OpenType MyEmoji.otf et les images SVG dans le répertoire MyEmoji.otf.svg.d et générent un nouveau fichier de police OpenType MyEmoji.otf.svg.otf avec des images intégrées dans un tableau SVG . Vous pouvez ensuite renommer ce fichier si vous le souhaitez. Le nom de fichier de chaque image dans le répertoire d'image doit être du formulaire glyph_123_456.svg (pour une gamme de glyphes, avec les indices de glyphes en décimal), glyph_123.svg (pour un seul glyphe, avec l'index Glyph en décimal), ou char_ABCD.svg (pour un seul glyph, avec le point de code UNICODE.
Pour chaque indice de glyphe mappé à un document SVG, il doit y avoir un élément dans ce document avec un ID correspondant à cet index de glyphe (par exemple id="glyph123" pour l'indice de glyphe 123). Étant donné que vous ne connaissez peut-être pas l'index des glyphes lors de la spécification d'un point de code dans le nom du fichier d'image, vous pouvez utiliser l' id="glyph{{{0}}}" et il sera remplacé par l'index de glyphes approprié pendant le processus d'injection.
Si vous spécifiez l'option -z avant le nom du fichier de police, les données SVG seront compressées à l'aide de GZIP. Microsoft affirme que le format SVG-in-Opentype le prend en charge, et la disponibilité d'une version d'Emojione avec des glyphes SVG compressés par GZIP semble soutenir cela. Cependant, je n'ai pas pu obtenir des polices avec des glyphes SVG compressés par GZIP pour fonctionner même dans la dernière version de Firefox à ce jour, donc je ne le recommande pas.
Si vous avez un tas d'images non SVG que vous souhaitez injecter en utilisant ce format, vous pouvez facilement générer des SVG avec des images embarquées à l'aide d'une commande comme celle suivante:
java -jar BitsNPicas.jar imagetosvg -x 0 -y -700 -w 800 -h 800 myimages/*.png
Cela créera un fichier SVG correspondant pour chaque fichier image non SVG spécifié. Les options -x , -y , -w , -h spécifient la position et la taille de l'image dans les unités EM. Notez que l'axe Y SVG est inversé à partir de l'axe Y TrueType, donc les coordonnées Y négatives sont au-dessus de la ligne de base et les coordonnées y positives sont inférieures à la ligne de base.
CBDT / CBLC de Google java -jar BitsNPicas.jar injectcbdt MyEmoji.ttf
Cela prendra le fichier de police TrueType MyEmoji.ttf et les images PNG dans le répertoire MyEmoji.ttf.cbdt.d et généreront un nouveau fichier de police TrueType MyEmoji.ttf.cbdt.ttf avec des images intégrées dans un tableau CBDT . Vous pouvez ensuite renommer ce fichier si vous le souhaitez. Il doit y avoir un sous-répertoire pour chaque taille de bitmap; Les noms des sous-répertoires n'ont pas d'importance. Le nom de fichier de chaque image dans chaque sous-répertoire doit être du formulaire glyph_123.png (avec l'index des glyphes en décimal) ou char_ABCD.png (avec le point de code Unicode dans hexadecimal).
Il est recommandé à chaque sous-répertoire de contenir également un fichier de valeurs metadata.txt à utiliser pour les différentes structures de données dans les tables CBLC et CBDT . Ce qui suit est recommandé au minimum:
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
Pour l'index des glyphes, vous pouvez également utiliser char_ABCD (avec le point de code Unicode dans HexaDecimal) ou * pour couvrir tous les glyphes non spécifiés autrement. Les champs associés à la structure des données lui-même (divers comptes, comptes et gammes d'index des glyphes, ainsi que tout ce qui est associé aux différents types de sous-tables d'index) n'a pas besoin d'être spécifié, sera ignoré s'ils sont spécifiés et seront calculés automatiquement. (Seuls les formats de sous-traits d'index 1 et les formats de données BITMAP 17, 18 et 19 seront utilisés, quelles que soient les métadonnées spécifiées.)
Par défaut, injectcbdt supprimera également toutes les tables glyf , loca , CFF ou CFF2 de la police. Pour conserver ces tables, spécifiez l'option -g avant le nom du fichier de police.
COLR / CPAL de Microsoft Le format COLR / CPAL de Microsoft n'est actuellement pas pris en charge.